You've already forked snikket-web-portal
Dependencies are not necessarily packaged for all architectures. In some cases (such as aiohttp, and others, on ARM) pip will attempt to compile the dependency from scratch. Since switching to multi-stage builds, we have been installing these without a compiler present which caused the build to fail on ARM architectures. This commit temporarily installs build-essential packages while running pip, then removes them again afterwards.
61 lines
1.9 KiB
Docker
61 lines
1.9 KiB
Docker
FROM debian:bullseye-slim AS build
|
|
|
|
RUN set -eu; \
|
|
export DEBIAN_FRONTEND=noninteractive ; \
|
|
apt-get update ; \
|
|
apt-get install -y --no-install-recommends \
|
|
python3 python3-pip python3-setuptools python3-wheel \
|
|
libpython3-dev \
|
|
make build-essential \
|
|
netcat;
|
|
|
|
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
|
|
COPY build-requirements.txt /opt/snikket-web-portal/build-requirements.txt
|
|
COPY Makefile /opt/snikket-web-portal/Makefile
|
|
COPY snikket_web/ /opt/snikket-web-portal/snikket_web
|
|
COPY babel.cfg /opt/snikket-web-portal/babel.cfg
|
|
|
|
WORKDIR /opt/snikket-web-portal
|
|
|
|
RUN set -eu; \
|
|
pip3 install -r requirements.txt; \
|
|
pip3 install -r build-requirements.txt; \
|
|
make;
|
|
|
|
|
|
FROM debian:bullseye-slim
|
|
|
|
ARG BUILD_SERIES=dev
|
|
ARG BUILD_ID=0
|
|
|
|
COPY docker/env.py /etc/snikket-web-portal/env.py
|
|
|
|
ENV SNIKKET_WEB_PYENV=/etc/snikket-web-portal/env.py
|
|
|
|
ENV SNIKKET_WEB_PROSODY_ENDPOINT=http://127.0.0.1:5280/
|
|
|
|
HEALTHCHECK CMD nc -zv ${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE:-127.0.0.1} ${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT:-5765}
|
|
|
|
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
|
|
|
|
WORKDIR /opt/snikket-web-portal
|
|
|
|
RUN set -eu; \
|
|
export DEBIAN_FRONTEND=noninteractive ; \
|
|
apt-get update ; \
|
|
apt-get install -y --no-install-recommends \
|
|
python3 python3-pip python3-setuptools python3-wheel build-essential; \
|
|
pip3 install -r requirements.txt; \
|
|
apt-get remove -y --autoremove build-essential; \
|
|
apt-get clean ; rm -rf /var/lib/apt/lists; \
|
|
pip3 install hypercorn; \
|
|
rm -rf /root/.cache;
|
|
|
|
COPY --from=build /opt/snikket-web-portal/snikket_web/ /opt/snikket-web-portal/snikket_web
|
|
COPY babel.cfg /opt/snikket-web-portal/babel.cfg
|
|
|
|
RUN echo "$BUILD_SERIES $BUILD_ID" > /opt/snikket-web-portal/.app_version
|
|
|
|
ADD docker/entrypoint.sh /entrypoint.sh
|
|
ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]
|