cli icon indicating copy to clipboard operation
cli copied to clipboard

Windows Docker image fails to run

Open marcelversteeg-keen opened this issue 6 months ago • 6 comments

Description

I have a Windows Docker image that I try to run using Docker Desktop for Windows. This image was created in three steps:

  1. Execute the command docker run -i --name vsbuildtools_install_container -v %CD%:C:\InstallSource -w C:\InstallSource mcr.microsoft.com/dotnet/framework/sdk:4.8.1-windowsservercore-ltsc2022 cmd /c Install.bat to create a base image (will be used as a base for other images too)
  2. Execute the command docker container commit vsbuildtools_install_container my_tag
  3. Do a docker build using a Dockerfile that copies some additional files into the image with the tag from step 2.

The Install.bat of step 1 just executes the following command: layout\vs_BuildTools --noWeb --quiet --wait --norestart --nocache --installPath C:\BuildTools --config dependencies\VS2022.config || IF "%ERRORLEVEL%"=="3010" EXIT 0 This will install Visual Studio 2022 based on a previously downloaded offline installer.

Now when I run the image my_tag with the command docker run -ti my_tag I get the following error:

docker: Error response from daemon: container 88c1500d02763339d365a78c83410186664b892ceff6ec0806f829f19461e365 encountered an error during hcs::System::CreateProcess: C:\TEMP\entrypoint.cmd type C:\TEMP\README: failure in a Windows system call: The system cannot find the file specified. (0x2)
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail: onecore\vm\compute\management\orchestration\vmhostedcontainer\processmanagement.cpp(173)\vmcomputeagent.exe!00007FF76E6AF5AD: (caller: 00007FF76E654C97) Exception(2) tid(3c8) 80070002 The system cannot find the file specified.
    CallContext:[\Bridge_ProcessMessage\VmHostedContainer_ExecuteProcess]
 Provider: 00000000-0000-0000-0000-000000000000]

Also when I try to override the entrypoint with an additional --entrypoint "cmd /c cmd" or by adding cmd /c cmd after the tag name, I still get the same error, except for the first line where C:\TEMP\entrypoint.cmd is replaced by cmd /c cmd.

Reproduce

See above

Expected behavior

The image just runs

docker version

Client:
 Version:           28.3.2
 API version:       1.51
 Go version:        go1.24.5
 Git commit:        578ccf6
 Built:             Wed Jul  9 16:12:31 2025
 OS/Arch:           windows/amd64
 Context:           desktop-windows

Server: Docker Desktop 4.44.2 (202017)
 Engine:
  Version:          28.3.2
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.5
  Git commit:       e77ff99
  Built:            Wed Jul  9 15:41:13 2025
  OS/Arch:          windows/amd64
  Experimental:     false

docker info

Client:
 Version:    28.3.2
 Context:    desktop-windows
 Debug Mode: false
 Plugins:
  ai: Docker AI Agent - Ask Gordon (Docker Inc.)
    Version:  v1.9.11
    Path:     C:\Program Files\Docker\cli-plugins\docker-ai.exe
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.26.1-desktop.1
    Path:     C:\Program Files\Docker\cli-plugins\docker-buildx.exe
  cloud: Docker Cloud (Docker Inc.)
    Version:  v0.4.18
    Path:     C:\Program Files\Docker\cli-plugins\docker-cloud.exe
  compose: Docker Compose (Docker Inc.)
    Version:  v2.39.1-desktop.1
    Path:     C:\Program Files\Docker\cli-plugins\docker-compose.exe
  debug: Get a shell into any image or container (Docker Inc.)
    Version:  0.0.42
    Path:     C:\Program Files\Docker\cli-plugins\docker-debug.exe
  desktop: Docker Desktop commands (Docker Inc.)
    Version:  v0.2.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-desktop.exe
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.29
    Path:     C:\Program Files\Docker\cli-plugins\docker-extension.exe
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v1.4.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-init.exe
  mcp: Docker MCP Plugin (Docker Inc.)
    Version:  v0.13.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-mcp.exe
  model: Docker Model Runner (EXPERIMENTAL) (Docker Inc.)
    Version:  v0.1.36
    Path:     C:\Program Files\Docker\cli-plugins\docker-model.exe
  offload: Docker Offload (Docker Inc.)
    Version:  v0.4.18
    Path:     C:\Users\vgm1bda\.docker\cli-plugins\docker-offload.exe
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-sbom.exe
  scout: Docker Scout (Docker Inc.)
    Version:  v1.18.2
    Path:     C:\Program Files\Docker\cli-plugins\docker-scout.exe

Server:
 Containers: 3
  Running: 0
  Paused: 0
  Stopped: 3
 Images: 62
 Server Version: 28.3.2
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Swarm: inactive
 Default Isolation: hyperv
 Kernel Version: 10.0 22631 (22621.1.amd64fre.ni_release.220506-1250)
 Operating System: Microsoft Windows Version 23H2 (OS Build 22631.5768)
 OSType: windows
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.71GiB
 Name: BOX-C-000J5
 ID: 2594620a-b8f2-4ce4-a32a-4aee39b867f2
 Docker Root Dir: C:\ProgramData\Docker
 Debug Mode: false
 Labels:
  com.docker.desktop.address=npipe://\\.\pipe\docker_cli
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

Additional Info

I have tried a lot of times to install Visual Studio via a Docker file, but our corporate proxies and other network settings let that fail every time (either with network timeouts, or just no installation). That is why I tried to do it the unconventional way with running an install script inside a container and then commit that container to tag it.

marcelversteeg-keen avatar Aug 22 '25 14:08 marcelversteeg-keen

One additional comment, I have also seen other issues regarding the same error, but none of the proposed solutions work for me.

marcelversteeg-keen avatar Aug 22 '25 14:08 marcelversteeg-keen

This doesn't appear to be related to the CLI (which is only the client to control the daemon); possibly better suited for

Unfortunately, the error is coming from Windows itself, and those tend to be rather opaque;

docker: Error response from daemon: container 88c1500d02763339d365a78c83410186664b892ceff6ec0806f829f19461e365 encountered an error during hcs::System::CreateProcess: C:\TEMP\entrypoint.cmd type C:\TEMP\README: failure in a Windows system call: The system cannot find the file specified. (0x2)
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail: onecore\vm\compute\management\orchestration\vmhostedcontainer\processmanagement.cpp(173)\vmcomputeagent.exe!00007FF76E6AF5AD: (caller: 00007FF76E654C97) Exception(2) tid(3c8) 80070002 The system cannot find the file specified.
    CallContext:[\Bridge_ProcessMessage\VmHostedContainer_ExecuteProcess]
 Provider: 00000000-0000-0000-0000-000000000000]

However, one thing I notice is that you're running the installer from a bind-mount;

-v %CD%:C:\InstallSource

And looking at the command you used to start the container (to be committed); it's possible that it's related to that; when committing a container, the options used to create the container are committed in the image's config. In your case, it's started with both a command (entrypoint) and working-directory that may not be valid when starting the image without the bind-mount set;

-w C:\InstallSource

I'm not on a Windows machine myself, but replicating a similar scenario on Docker Desktop for Mac with a Linux container;

docker run \
    --name tempcontainer \
    -w /InstallSource \
    -v ./:/InstallSource \
    alpine sh -c '/InstallSource/install.sh'


docker container commit tempcontainer tempimage
sha256:498b7ba67e929d6ed15a9d5fcbbcad7ee4627d5f45ce85a4c32410e6bc83fbfe

Now, when inspecting the resulting image, you'll see that it set both the working-dir and command as default config;

docker image inspect --format '{{json .Config.Cmd}}' tempimage 
["sh","-c","/InstallSource/install.sh"]

docker image inspect --format '{{json .Config.WorkingDir}}' tempimage
"/InstallSource"

So trying to run the image fails;

docker run --rm tempimage
sh: /InstallSource/install.sh: not found

Overriding the command looks to work for a Linux container, but it's possible that fails, as on Linux, the mountpoint for the directory is likely committed, and possibly that's not the case on Windows;

docker run -it --rm tempimage pwd
/InstallSource

So it's worth trying to start the initial container without special options set (other than the bind-mount), so that the config itself remains the "default" config from the image;

docker run -it --name vsbuildtools_install_container \
    -v %CD%:C:\InstallSource \
    mcr.microsoft.com/dotnet/framework/sdk:4.8.1-windowsservercore-ltsc2022

Then run the install process interactively; inside the container

cd \InstallSource
Install.bat

(or similarly, my Windows is a bit rusty); then exit the container, and commit it.

thaJeztah avatar Aug 25 '25 18:08 thaJeztah

Let me know if that works!

thaJeztah avatar Aug 25 '25 18:08 thaJeztah

@thaJeztah Unfortunately that did not work either.

I have also inspected the image after the initial commit and the result is here:

[
    {
        "Id": "sha256:44128beb32aad6f047fb31e536cd249d35e85c42c35ac6ee8345a572bb2f7d5e",
        "RepoTags": [
            "<tag URL omitted for security reasons>"
        ],
        "RepoDigests": [],
        "Parent": "sha256:70112240ca23efc76ea1ea60dcc5f4b3e2dfcd864b8e5d548044df0e4cbf2f7b",
        "Comment": "",
        "Created": "2025-08-26T09:27:20.9003631Z",
        "DockerVersion": "28.3.2",
        "Author": "",
        "Architecture": "amd64",
        "Os": "windows",
        "OsVersion": "10.0.20348.4052",
        "Size": 38397695041,
        "GraphDriver": {
            "Data": {
                "dir": "C:\\ProgramData\\Docker\\windowsfilter\\560ccdddccd79224f215ab3cea90b0dd0a3e97437accc1a3c992f374068eb7fc"
            },
            "Name": "windowsfilter"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:97c8018c72777d48bcb03de64237e9e08f5c542b1497e90e72b2a281f9a3ef1a",
                "sha256:293789c9bf58a4f3a869061e58653e29a1cb2c2925efa6778cb94dcfc88c016f",
                "sha256:27cdaee46798441eb3d491eeed174c296620a8ebf2327a058ebcfc11e8685538",
                "sha256:12b1de1233f274f55460b76d94a9e0a332cc19520c4bdfaa0d38928243b46f49",
                "sha256:0b8bed6cfc106e66aa4f10b12ddc859a7174d3c2d48e4da53d7e65c50a6ac3fb",
                "sha256:c3ce87748bf8c359d1517acfc586bc48b08e142dffda0c4d024d5aa9681fcbe8",
                "sha256:031e22816d3980c3d6df3c908e6cd07619d249e31be20f1c011ffca092997eba",
                "sha256:80ba580a89a7ad2fa65aeafc5d56a02fd865479d2ea3fc3ff42085a1f4265efa",
                "sha256:d05d1615618661f8b1ceff06d0b317ca26bcda749ce3bd3c972f19f047080f30",
                "sha256:bdfe229a0487f3a512a3b6cb2dd59fbcc8eb12d04241bd32829d511a6337e847"
            ]
        },
        "Metadata": {
            "LastTagTime": "2025-08-26T11:27:21.9116491+02:00"
        },
        "Config": {
            "Cmd": [
                "c:\\windows\\system32\\cmd.exe"
            ],
            "Entrypoint": null,
            "Env": [
                "DOTNET_RUNNING_IN_CONTAINER=true",
                "COMPLUS_RUNNING_IN_CONTAINER=1",
                "COMPLUS_NGenProtectedProcess_FeatureEnabled=0",
                "DOTNET_GENERATE_ASPNET_CERTIFICATE=false",
                "DOTNET_USE_POLLING_FILE_WATCHER=true",
                "NUGET_VERSION=6.14.0",
                "ROSLYN_COMPILER_LOCATION=C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin\\Roslyn"
            ],
            "Labels": null,
            "OnBuild": null,
            "User": "",
            "Volumes": null,
            "WorkingDir": ""
        }
    }
]

This image DOES run.

Then when I create a derived image from this one, that derived image does not run. The result of inspecting that image is:

[
    {
        "Id": "sha256:612297e787145d1063972b6600908936f63d3298c3057af366bf3807a76dde6c",
        "RepoTags": [
            "<tag URL omitted for security reasons>"
        ],
        "RepoDigests": [],
        "Parent": "sha256:7e3c7d573bc52d6bc07885dd4f2225eb6cae735115471b6131a83eed78533d06",
        "Comment": "",
        "Created": "2025-08-26T09:37:04.4440444Z",
        "DockerVersion": "28.3.2",
        "Author": "",
        "Architecture": "amd64",
        "Os": "windows",
        "OsVersion": "10.0.20348.4052",
        "Size": 38772666442,
        "GraphDriver": {
            "Data": {
                "dir": "C:\\ProgramData\\Docker\\windowsfilter\\7dc28df0b29582fcab6e5983dbc3d15bcae78132b409bfb5f1b9d7c0139f9343"
            },
            "Name": "windowsfilter"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:97c8018c72777d48bcb03de64237e9e08f5c542b1497e90e72b2a281f9a3ef1a",
                "sha256:293789c9bf58a4f3a869061e58653e29a1cb2c2925efa6778cb94dcfc88c016f",
                "sha256:27cdaee46798441eb3d491eeed174c296620a8ebf2327a058ebcfc11e8685538",
                "sha256:12b1de1233f274f55460b76d94a9e0a332cc19520c4bdfaa0d38928243b46f49",
                "sha256:0b8bed6cfc106e66aa4f10b12ddc859a7174d3c2d48e4da53d7e65c50a6ac3fb",
                "sha256:c3ce87748bf8c359d1517acfc586bc48b08e142dffda0c4d024d5aa9681fcbe8",
                "sha256:031e22816d3980c3d6df3c908e6cd07619d249e31be20f1c011ffca092997eba",
                "sha256:80ba580a89a7ad2fa65aeafc5d56a02fd865479d2ea3fc3ff42085a1f4265efa",
                "sha256:d05d1615618661f8b1ceff06d0b317ca26bcda749ce3bd3c972f19f047080f30",
                "sha256:bdfe229a0487f3a512a3b6cb2dd59fbcc8eb12d04241bd32829d511a6337e847",
                "sha256:8f8124cf62a11022f1abb007ddb64af78d01c829676f283a142388c4a538c3b8",
                "sha256:56346a3c9944f1f9e989241ef80e35d559adc693b07d393e66da0878b16c6129",
                "sha256:12fadb3382b03c5a165f643245c2e150ec60a781a1b45c8bf4d6f58faf17427b",
                "sha256:b44c2fdae37b2321453f93c758251f501389f7be28d5f6975fde33d1ce372c28",
                "sha256:d387d39a21c189083e8c8c92bcb0d11796b52e2f9e6158827116cb02bdbbad86",
                "sha256:c0c2a1d96cd55b5dbbe996e8b920e089265d1262e8c52cb81b36b750da687764",
                "sha256:052422e0bdecb2c745e64c75c32c35615484f3909e45198f96c943e56bcb3147",
                "sha256:62944d93536850a33fcbbe3ce8787c686f9644c76cdf932719d049c63338e466",
                "sha256:e35ce10906655abc1a79b5482cad3e6028d74b78aad791473f1fa73665ab2b4a",
                "sha256:bb25405c964e1730d6e6276e9c94e8954eae9539be38b9fb12e3971360e0cc8e",
                "sha256:adc99fadaa2e561d483bdbaef36161fb0e63036e115cb2824cdb19b814b894e2",
                "sha256:b11eb8b249afe0672ea74f49e700e5cfc640a6ce3f8917114fedf2aa2975c793",
                "sha256:bcddd8ca41cf3108eaba98b8528dec5ffd222d60bc33e5487349e997b20f44a1",
                "sha256:622bca8c50ed9b548fc89e4e6a16ac5d8c51db3f74cec2f20fb964f07ef2245a",
                "sha256:82e84dbf3e0a11d138776fd0137769d7d619c7e0be3bb5235da6622562329ac1",
                "sha256:4b7a3263659b015fe177f0411b74f819495ba5c6aefeb3a743faab4eeb6c1f65",
                "sha256:413683e6f19e8d96b6e30c1a67612302537c104ace76d7bee2a6a55eca8a2388",
                "sha256:bd4e9912bab79d97567827bb906a3ed8e6df2bd33e3c745a2b14a42c133d5f59",
                "sha256:0218159638d3ccdc0d857b85dca1157ff44bb1e1132c069ec041de29a9cfee84",
                "sha256:6b67481e08e2dece62911bfa7d90b70e8dc03f2344a951d93b96e7d173f4efda",
                "sha256:ecbb5bb8450b290acac2f82057d7b0d32073d4e7171dcae10e98136e696d556c"
            ]
        },
        "Metadata": {
            "LastTagTime": "2025-08-26T11:37:05.8649139+02:00"
        },
        "Config": {
            "Cmd": [
                "type",
                "C:\\TEMP\\README"
            ],
            "Entrypoint": [
                "C:\\TEMP\\entrypoint.cmd"
            ],
            "Env": [
                "DOTNET_RUNNING_IN_CONTAINER=true",
                "COMPLUS_RUNNING_IN_CONTAINER=1",
                "COMPLUS_NGenProtectedProcess_FeatureEnabled=0",
                "DOTNET_GENERATE_ASPNET_CERTIFICATE=false",
                "DOTNET_USE_POLLING_FILE_WATCHER=true",
                "NUGET_VERSION=6.14.0",
                "ROSLYN_COMPILER_LOCATION=C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin\\Roslyn",
                "LINT_PLUS_DIR=c:\\PCLintPlus"
            ],
            "Labels": null,
            "OnBuild": null,
            "Shell": [
                "cmd",
                "/S",
                "/C"
            ],
            "User": "ContainerUser",
            "Volumes": null,
            "WorkingDir": ""
        }
    }
]

If I look at this, there are no WorkingDir's set anywhere in both images.

Any other suggestions?

marcelversteeg-keen avatar Aug 26 '25 09:08 marcelversteeg-keen

No immediate suggestions. I did do a quick diff between the two; notable changes;

  • Second image has an entrypoint and command set that depend on C:\\TEMP, which likely won't be persisted in the image
  • Second image has a User set (although not sure if that would impact things directly; it's possible though if that user doesn't have access somehow)
  • Second image also has the shell set to cmd /s /c (which normally would work though)
diff --git a/image1.json b/image2.json
index f90c8919a3..c7c6e5e82f 100644
--- a/image1.json
+++ b/image2.json
@@ -1,22 +1,22 @@
 [
     {
-        "Id": "sha256:44128beb32aad6f047fb31e536cd249d35e85c42c35ac6ee8345a572bb2f7d5e",
+        "Id": "sha256:612297e787145d1063972b6600908936f63d3298c3057af366bf3807a76dde6c",
         "RepoTags": [
             "<tag URL omitted for security reasons>"
         ],
         "RepoDigests": [],
-        "Parent": "sha256:70112240ca23efc76ea1ea60dcc5f4b3e2dfcd864b8e5d548044df0e4cbf2f7b",
+        "Parent": "sha256:7e3c7d573bc52d6bc07885dd4f2225eb6cae735115471b6131a83eed78533d06",
         "Comment": "",
-        "Created": "2025-08-26T09:27:20.9003631Z",
+        "Created": "2025-08-26T09:37:04.4440444Z",
         "DockerVersion": "28.3.2",
         "Author": "",
         "Architecture": "amd64",
         "Os": "windows",
         "OsVersion": "10.0.20348.4052",
-        "Size": 38397695041,
+        "Size": 38772666442,
         "GraphDriver": {
             "Data": {
-                "dir": "C:\\ProgramData\\Docker\\windowsfilter\\560ccdddccd79224f215ab3cea90b0dd0a3e97437accc1a3c992f374068eb7fc"
+                "dir": "C:\\ProgramData\\Docker\\windowsfilter\\7dc28df0b29582fcab6e5983dbc3d15bcae78132b409bfb5f1b9d7c0139f9343"
             },
             "Name": "windowsfilter"
         },
@@ -32,17 +32,41 @@
                 "sha256:031e22816d3980c3d6df3c908e6cd07619d249e31be20f1c011ffca092997eba",
                 "sha256:80ba580a89a7ad2fa65aeafc5d56a02fd865479d2ea3fc3ff42085a1f4265efa",
                 "sha256:d05d1615618661f8b1ceff06d0b317ca26bcda749ce3bd3c972f19f047080f30",
-                "sha256:bdfe229a0487f3a512a3b6cb2dd59fbcc8eb12d04241bd32829d511a6337e847"
+                "sha256:bdfe229a0487f3a512a3b6cb2dd59fbcc8eb12d04241bd32829d511a6337e847",
+                "sha256:8f8124cf62a11022f1abb007ddb64af78d01c829676f283a142388c4a538c3b8",
+                "sha256:56346a3c9944f1f9e989241ef80e35d559adc693b07d393e66da0878b16c6129",
+                "sha256:12fadb3382b03c5a165f643245c2e150ec60a781a1b45c8bf4d6f58faf17427b",
+                "sha256:b44c2fdae37b2321453f93c758251f501389f7be28d5f6975fde33d1ce372c28",
+                "sha256:d387d39a21c189083e8c8c92bcb0d11796b52e2f9e6158827116cb02bdbbad86",
+                "sha256:c0c2a1d96cd55b5dbbe996e8b920e089265d1262e8c52cb81b36b750da687764",
+                "sha256:052422e0bdecb2c745e64c75c32c35615484f3909e45198f96c943e56bcb3147",
+                "sha256:62944d93536850a33fcbbe3ce8787c686f9644c76cdf932719d049c63338e466",
+                "sha256:e35ce10906655abc1a79b5482cad3e6028d74b78aad791473f1fa73665ab2b4a",
+                "sha256:bb25405c964e1730d6e6276e9c94e8954eae9539be38b9fb12e3971360e0cc8e",
+                "sha256:adc99fadaa2e561d483bdbaef36161fb0e63036e115cb2824cdb19b814b894e2",
+                "sha256:b11eb8b249afe0672ea74f49e700e5cfc640a6ce3f8917114fedf2aa2975c793",
+                "sha256:bcddd8ca41cf3108eaba98b8528dec5ffd222d60bc33e5487349e997b20f44a1",
+                "sha256:622bca8c50ed9b548fc89e4e6a16ac5d8c51db3f74cec2f20fb964f07ef2245a",
+                "sha256:82e84dbf3e0a11d138776fd0137769d7d619c7e0be3bb5235da6622562329ac1",
+                "sha256:4b7a3263659b015fe177f0411b74f819495ba5c6aefeb3a743faab4eeb6c1f65",
+                "sha256:413683e6f19e8d96b6e30c1a67612302537c104ace76d7bee2a6a55eca8a2388",
+                "sha256:bd4e9912bab79d97567827bb906a3ed8e6df2bd33e3c745a2b14a42c133d5f59",
+                "sha256:0218159638d3ccdc0d857b85dca1157ff44bb1e1132c069ec041de29a9cfee84",
+                "sha256:6b67481e08e2dece62911bfa7d90b70e8dc03f2344a951d93b96e7d173f4efda",
+                "sha256:ecbb5bb8450b290acac2f82057d7b0d32073d4e7171dcae10e98136e696d556c"
             ]
         },
         "Metadata": {
-            "LastTagTime": "2025-08-26T11:27:21.9116491+02:00"
+            "LastTagTime": "2025-08-26T11:37:05.8649139+02:00"
         },
         "Config": {
             "Cmd": [
-                "c:\\windows\\system32\\cmd.exe"
+                "type",
+                "C:\\TEMP\\README"
+            ],
+            "Entrypoint": [
+                "C:\\TEMP\\entrypoint.cmd"
             ],
-            "Entrypoint": null,
             "Env": [
                 "DOTNET_RUNNING_IN_CONTAINER=true",
                 "COMPLUS_RUNNING_IN_CONTAINER=1",
@@ -50,11 +74,17 @@
                 "DOTNET_GENERATE_ASPNET_CERTIFICATE=false",
                 "DOTNET_USE_POLLING_FILE_WATCHER=true",
                 "NUGET_VERSION=6.14.0",
-                "ROSLYN_COMPILER_LOCATION=C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin\\Roslyn"
+                "ROSLYN_COMPILER_LOCATION=C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin\\Roslyn",
+                "LINT_PLUS_DIR=c:\\PCLintPlus"
             ],
             "Labels": null,
             "OnBuild": null,
-            "User": "",
+            "Shell": [
+                "cmd",
+                "/S",
+                "/C"
+            ],
+            "User": "ContainerUser",
             "Volumes": null,
             "WorkingDir": ""
         }

thaJeztah avatar Aug 26 '25 12:08 thaJeztah

@thaJeztah

No immediate suggestions. I did do a quick diff between the two; notable changes;

* Second image has an entrypoint and command set that depend on `C:\\TEMP`, which likely won't be persisted in the image

The C:\TEMPentrypoint.cmdis copied into the image via theDockerfile`. The way we create the derived image has not changed, only the way I try to create the initial image (due to other strange issues with the way I built that initial image before). In earlier images this has always worked.

* Second image has a `User` set (although not sure if that would impact things directly; it's possible though if that user doesn't have access somehow)

See the above point.

* Second image also has the shell set to `cmd /s /c` (which normally would work though)

Also this has not changed

marcelversteeg-keen avatar Aug 27 '25 07:08 marcelversteeg-keen