Files
psa_car_controller/Dockerfile
T
Florian Bezannier f8be0ef11f fix: handle playwright install failure on ARM in Dockerfile
Update Dockerfile to gracefully handle cases where playwright cannot be
installed (e.g., on ARM architectures where it's not available via pip).
This ensures Docker builds succeed on all platforms.
2026-05-21 17:13:23 +02:00

32 lines
1.7 KiB
Docker

ARG PYTHON_DEP='python3 python3-wheel python3-typing-extensions python3-pandas python3-six python3-dateutil python3-brotli python3-pycryptodome libatlas3-base python3-cryptography python3-scipy androguard python3-flask python3-paho-mqtt python3-ruamel.yaml ca-certificates python3-numpy'
ARG DEBIAN_FRONTEND=noninteractive
FROM debian:bookworm-slim AS builder
ARG PSACC_VERSION="0.0.0"
ARG PYTHON_DEP
RUN BUILD_DEP='python3-pip python3-setuptools python3-dev libblas-dev liblapack-dev gfortran libffi-dev libxml2-dev libxslt1-dev make automake gcc g++ subversion ninja-build' ; \
apt-get update && apt-get install -y --no-install-recommends $BUILD_DEP $PYTHON_DEP;
RUN pip3 install --break-system-packages --upgrade pip wheel setuptools
COPY ./dist/psa_car_controller-${PSACC_VERSION}-py3-none-any.whl .
RUN pip3 install --break-system-packages --no-cache-dir psa_car_controller-${PSACC_VERSION}-py3-none-any.whl
EXPOSE 5000
FROM debian:bookworm-slim
ARG PYTHON_DEP
WORKDIR /config
ENV PSACC_BASE_PATH=/ PSACC_PORT=5000 PSACC_OPTIONS="-c -r --web-conf" PSACC_CONFIG_DIR="/config" PYTHONPATH="/app"
COPY --from=builder /var/lib/apt /var/lib/apt
COPY --from=builder /var/cache/apt/ /var/cache/apt/
COPY --from=builder /usr/local/lib /usr/local/lib
COPY --from=builder /usr/local/bin/ /usr/local/bin/
RUN apt-get install -y --no-install-recommends $PYTHON_DEP curl && \
apt-get clean ; \
rm -rf /var/lib/apt/lists/*
# Install Playwright and WebKit dependencies (skip on ARM where not available)
RUN pip3 install --break-system-packages playwright 2>/dev/null && \
playwright install --with-deps webkit 2>/dev/null || \
echo "Playwright not available on this architecture, headless auth will use manual fallback"
COPY /docker_files/init.sh /init.sh
CMD /init.sh