Skip to content

[Bug]: 'make docker-dev' fails on arm64 (Apple M1/M2) and requires setup modifications #640

@3Sangeetha3

Description

@3Sangeetha3

Environment:

  1. os: macOS (Apple Silicon M1/M2/M3)
  2. Architecture: arm64
  3. Setup Method: make docker-dev

Problem 1: Puppeteer/Chromium Build Failure on arm64

The first failure happens during the node:lts build stage when yarn install is run.

Actual Behavior: The build fails during yarn install with the error The chromium binary is not available for arm64.
The build fails when running yarn install. The root cause appears to be the puppeteer package. Its install script tries to download a pre-built binary of the Chromium browser. However, since the Docker build is running on an arm64 architecture (I'm on an Apple M1/M2/M3 Mac), the script fails because it cannot find a pre-built arm64 Linux binary for Chromium.

Logs:
Image
Image

Proposed FIx: Install chromium via apt before running the make command.

Problem 2: Missing Python Virtual Environment (venv)

After fixing Problem 1, the build fails again in the second python:3.11.0 stage when installing Python dependencies.

Actual Behavior: The build fails when running the make install-deps-python command. The Makefile script (at line 59) checks for the existence of a ./venv directory using [ -d "./venv" ]. This check fails because the virtual environment has not been created yet, which stops the build.

Logs:
Image

Image

Proposed FIx: Explicitly create the virtual environment by running python3 -m venv venv after pip install virtualenv and before the make install-deps-python command.

Problem 3: Port Conflict on make docker-dev-run

After successfully fixing both build errors, running the container fails due to a port conflict.

Actual Behavior: The make docker-dev-run command fails with a bind: address already in use error for port 5000. On macOS, this port is commonly occupied by the AirPlay Receiver (ControlCe) system service, which makes it impossible to run the container.

Logs:
Image

Proposed Fix: Change the host port mapping in the Makefile from 5000 to 5001 (or another free port) to avoid this common conflict.

Metadata

Metadata

Assignees

No one assigned

    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