dockerdocker-composedockerfilepython-3.8windows-server

docker-compose: failed to register layer: Error processing tar file - cannot find Windows DLL MUI file


Docker desktop is using Linux containers.

(Yes, I tried this: Docker Error: failed to register layer: Error processing tar file(exit status 1): "...msader15.dll.mui: no such file or directory", but using Docker Desktop with Windows containers caused the docker-compose command to fail with the response Error response from daemon: operating system is not supported)

Structure

- engine-load-tests
|- Dockerfile
|- docker-compose.yml
|- engine_load_tester_locust\
   |- main.py 
|- WinPerfCounters\ [I know - the casing is inconsistent]
   |- main.py
   |- Dockerfile
|- environment config files, README, other files

Dockerfile

FROM python:3.9.6-windowsservercore-1809
COPY . ./WinPerfCounters/
RUN pip install --no-cache-dir -r ./WinPerfCounters/requirements.txt
CMD [ "python", "WinPerfCounters/main.py", "WinPerfCounters/load_test.conf" ]

Docker-Compose

version: "3.3"
services:
  win_perf_counters:
    container_name: win_perf_counters
    platform: windows
    image: python:3.9.6-windowsservercore-1809
    build: ./WinPerfCounters
    depends_on:
      - influxdb
    links:
      - influxdb
Then other containers for locust, influx, and grafana...

Output - Snippets

------
> [python:3.9.6-windowsservercore-1809 1/3] FROM docker.io/library/python:3.9.6-windowsservercore-1809@sha256:54b7eadfbbc3a983bf6ea80eb7478b68d46267bbbcc710569972c140247ccd5e:
-----
failed to solve: rpc error: code = Unknown desc = failed to register layer: Error processing tar file(exit status 1): link /Files/Program Files/common files/Microsoft Shared/Ink/en-US/micaut.dll.mui /Files/Program Files (x86)/common fi
les/Microsoft Shared/ink/en-US/micaut.dll.mui: no such file or directory

Solution

  • You can't run Windows containers (i.e. derived from some Windows base image like windowsservercore-1809) when Docker Desktop is set to Linux containers.