Skip to content

docker-in-docker feature fails on macOS ARM64 with containerd 2.3.x unless erofs-utils is installed #1642

@cumhuronat

Description

@cumhuronat

Summary

The ghcr.io/devcontainers/features/docker-in-docker:2 feature failed to start the inner Docker daemon on macOS Apple Silicon with the mcr.microsoft.com/devcontainers/dotnet:1-10.0 base image.

Inside the devcontainer, docker ps failed with:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
dockerd was launched, and containerd started, but dockerd timed out waiting for containerd:

failed to start containerd: timeout waiting for containerd to start

The relevant containerd log included:

failed to check mkfs.erofs availability: failed to run mkfs.erofs --help: exec: "mkfs.erofs": executable file not found in $PATH: skip plugin
no plugins registered for io.containerd.transfer.v1: plugin: not found

Installing erofs-utils in the devcontainer image fixed the issue:

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        protobuf-compiler \
        erofs-utils \
    && rm -rf /var/lib/apt/lists/*

Environment

Host: macOS Apple Silicon
Docker Desktop: 4.72.0
Docker Engine: 29.4.2
Dev Containers extension: 0.459.0
VS Code: 1.119.0
Base image: mcr.microsoft.com/devcontainers/dotnet:1-10.0
Feature: ghcr.io/devcontainers/features/docker-in-docker:2
Architecture inside container: aarch64 / arm64

Expected

The Docker-in-Docker feature should either install erofs-utils, avoid enabling a containerd path that requires mkfs.erofs, or document that base images must include erofs-utils for containerd 2.3.x.

Actual

The inner Docker daemon does not become usable; docker ps reports that it cannot connect to /var/run/docker.sock.

Workaround

Install erofs-utils in the Dockerfile before the feature starts dockerd.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions