1

I'm trying to run docker compose stack using Docker Engine Windows service, installed with dockerd.exe --register-service. When I run docker compose up I get the following log:

Step 4/14 : RUN apt-get update
 ---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (windows/amd64) and no specific platform was requested
 ---> Running in 7e50524784b1
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:4 http://deb.debian.org/debian bullseye/main amd64 Packages [8184 kB]
Get:5 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [186 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [6344 B]
Fetched 8585 kB in 15s (578 kB/s)
Reading package lists...
1 error occurred:
        * Status: The command '/bin/sh -c apt-get update' returned a non-zero code: 4294967295: failed to shutdown container: container 7e50524784b12e1c4f94537b3a700ae61eb35bdc597b0d277c750b203dae97e4 encountered an error during hcsshim::System::waitBackground: failure in a Windows system call: The virtual machine or container with the specified identifier is not running. (0xc0370110): subsequent terminate failed container 7e50524784b12e1c4f94537b3a700ae61eb35bdc597b0d277c750b203dae97e4 encountered an error during hcsshim::System::waitBackground: failure in a Windows system call: The virtual machine or container with the specified identifier is not running. (0xc0370110), Code: 4294967295

Dockerfile:

# syntax=docker/dockerfile:1
FROM python:3.10-bullseye
WORKDIR /app
COPY Pipfile Pipfile 
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6  -y
RUN pip install pipenv 
RUN pipenv install
COPY . .
ENV STREAMLIT_BROWSER_GATHER_USER_STATS=false
ENV STREAMLIT_SERVER_MAX_UPLOAD_SIZE=2000
ENV STREAMLIT_SERVER_RUN_ON_SAVE=true
ENV STREAMLIT_SERVER_HEADLESS=true
CMD ["pipenv", "run", "streamlit", "run", "src/main.py"]
EXPOSE 8501

docker-compose.yml:

version: "1.27.0+"

services:
  app:
    build: .
    ports:
      - "8501"
    platform: linux/amd64
    volumes:
      - .:/app

Also before getting these errors, I received this, which I solved by running dockerd -experimental. And error that it can't find linux containers, which I solved by this.

Intolighter
  • 150
  • 3
  • 15

1 Answers1

1

I believe your problem is that dockerd on Windows will try to run Windows containers, not Linux. When using Docker desktop, it changes the context to use WSL 2 for Linux containers and HCSv1 for Windows containers. I'm not sure if you can set up dockerd directly. What is the environment? Is it a Windows client or Server?

  • It's Windows 10. – Intolighter Oct 01 '22 at 12:35
  • 1
    Yep, so the problem most likely is that dockerd is calling HCSv1, which in turn manages Windows containers, not Linux containers. My recommendation is that you use Docker Desktop (since it's Windows 10) to call WSL 2, which in turn manages a utility VM running Linux. – Vinicius Apolinario Oct 03 '22 at 16:38