windeployqt via docker issue
-
I have a build pipeline I am running on Azure DevOps Cloud service that builds a desktop Qt application using a docker container.
The build script builds the application just fine, but then windeployqt misses about half of the dependencies.
This only happens when running from the Azure DevOps Cloud service. When I run the exact same docker command from my desktop it builds fine.The docker command used in both instances is:
docker run --entrypoint=CleanBuild\buildApplication.cmd --env-file=CleanBuild\msvc.env -v %cd%:c:\build\s -w c:\build\s --rm pecfuelsystemae.azurecr.io/fs-pinnacle_qt_build:win_ltsc2019-qt5.15.2v6 build userinterface
Here is the commands run in the build cmd script after the executable has been compiled with qmake:
call C:\Qt\5.15.2\msvc2019_64\bin\qtenv2.bat call C:\BuildTools\VC\Auxiliary\Build\vcvarsall.bat x64 10.0.18362.0 cd C:\build\s\UserInterface\release windeployqt --qmldir C:\build\s\UserInterface\ C:\build\s\UserInterface\release --compiler-runtime --verbose 2
Here is a truncated log from desktop docker compilation showing the full list of required dependencies:
Setting up environment for Qt usage... Remember to call vcvarsall.bat to complete environment setup! ********************************************************************** ** Visual Studio 2019 Developer Command Prompt v16.8.4 ** Copyright (c) 2020 Microsoft Corporation ********************************************************************** [vcvarsall.bat] Environment initialized for: 'x64' Qt binaries in C:\Qt\5.15.2\msvc2019_64\bin readPeExecutable: C:\build\s\UserInterface\release\UserInterface.exe 64 bit, dependent libraries: 19, release readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5WebEngine.dll 64 bit, dependent libraries: 12 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5WebEngineCore.dll 64 bit, dependent libraries: 62 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Positioning.dll 64 bit, dependent libraries: 9 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Quick.dll 64 bit, dependent libraries: 16 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5QmlModels.dll 64 bit, dependent libraries: 9 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5WebChannel.dll 64 bit, dependent libraries: 7 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll 64 bit, dependent libraries: 18 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Qml.dll 64 bit, dependent libraries: 13 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Network.dll 64 bit, dependent libraries: 17 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll 64 bit, dependent libraries: 25 C:\build\s\UserInterface\release\UserInterface.exe 64 bit, release executable [QML] readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll 64 bit, dependent libraries: 25
Here is the corresponding server log, where the first five dependencies are missing:
Setting up environment for Qt usage... Remember to call vcvarsall.bat to complete environment setup! ********************************************************************** ** Visual Studio 2019 Developer Command Prompt v16.8.4 ** Copyright (c) 2020 Microsoft Corporation ********************************************************************** [vcvarsall.bat] Environment initialized for: 'x64' Qt binaries in C:\Qt\5.15.2\msvc2019_64\bin readPeExecutable: C:\build\s\UserInterface\release\UserInterface.exe 64 bit, dependent libraries: 19, release readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5WebChannel.dll 64 bit, dependent libraries: 7 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll 64 bit, dependent libraries: 18 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Qml.dll 64 bit, dependent libraries: 13 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Network.dll 64 bit, dependent libraries: 17 readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll 64 bit, dependent libraries: 25 C:\build\s\UserInterface\release\UserInterface.exe 64 bit, release executable [QML] readPeExecutable: C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll 64 bit, dependent libraries: 25
I have run SET to get a list of all env variables on each environment, and here is the list of the differences:
Anyone have any ideas on how to make progress with this problem?