-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Environment:
- os: macOS (Apple Silicon M1/M2/M3)
- Architecture: arm64
- 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.
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.
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.
Proposed Fix: Change the host port mapping in the Makefile from 5000 to 5001 (or another free port) to avoid this common conflict.



