Skip to content

make run fails on Apple Silicon: Dockerfile hardcodes amd64 Docker repo/package and breaks platform-factory build #4

@suamnbimali

Description

@suamnbimali

Problem / Probleme

make run fails during docker compose up -d --build when building platform-factory.

The Dockerfile hardcodes Docker APT repo architecture to amd64:

echo "deb [arch=amd64 ...] https://download.docker.com/linux/debian bookworm stable" ...
On Apple Silicon (arm64), APT tries to install docker-ce-cli:amd64, which fails with unmet dependency:

docker-ce-cli:amd64 : Depends: libc6:amd64 (>= 2.34) but it is not installable

This prevents the stack from starting and blocks local development on ARM machines.

make run echoue pendant docker compose up -d --build car le Dockerfile force amd64, ce qui casse l'installation sur arm64.

Proposed Solution / Solution proposee
Make Docker CLI installation architecture-aware (and distro-aware), or avoid installing Docker CE inside the app image if not required.

Suggested fix in Dockerfile:

Detect architecture dynamically with dpkg --print-architecture.
Detect Debian codename from /etc/os-release.
Use those values in Docker repo entry instead of hardcoded amd64/bookworm.
If Docker CLI is optional, gate it behind a build arg (or remove it from this image).
Example approach:

arch=$(dpkg --print-architecture)
codename=$(. /etc/os-release && echo "$VERSION_CODENAME")
use arch=${arch} and ${codename} in /etc/apt/sources.list.d/docker.list
Rendre l'installation portable (arm64/amd64) en supprimant les valeurs codées en dur.

Alternatives Considered / Alternatives envisagees
Install docker.io from Debian repos instead of Docker CE repo.
Build separate images per architecture with explicit --platform.
Remove Docker CLI from the container and rely on host Docker tooling.
Use Case / Cas d'usage
Developers using Apple Silicon Macs (M1/M2/M3) need make run to work without patching Dockerfiles.
CI/CD runners may vary by architecture; build should be deterministic and portable.
Additional Context / Contexte supplementaire
Reproduction
On Apple Silicon, run:
make run
Build fails in platform-factory at Dockerfile line with Docker repo setup/install.
Failing output (key lines)
docker-ce-cli:amd64 : Depends: libc6:amd64 (>= 2.34) but it is not installable
target platform-factory: failed to solve ... exit code: 100
Acceptance Criteria
make run succeeds on both arm64 and amd64.
No hardcoded arch=amd64 in Docker repo line.
Docker CLI install step is either architecture-aware or optional.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions