✨ final image now uses dhi base image
This commit is contained in:
parent
89403a8e30
commit
1b5a2c0264
1 changed files with 24 additions and 12 deletions
36
Dockerfile
36
Dockerfile
|
|
@ -1,5 +1,5 @@
|
||||||
ARG NODE_VERSION=24
|
ARG NODE_VERSION=24
|
||||||
ARG PYTHON_VERSION=3.14-slim
|
ARG PYTHON_VERSION=3.14
|
||||||
|
|
||||||
############
|
############
|
||||||
# build ui #
|
# build ui #
|
||||||
|
|
@ -28,17 +28,16 @@ RUN set -ex; \
|
||||||
# exclude webpack-bundle-analyzer output
|
# exclude webpack-bundle-analyzer output
|
||||||
rm -f /tmp/advent22_ui/report.html;
|
rm -f /tmp/advent22_ui/report.html;
|
||||||
|
|
||||||
############
|
|
||||||
# main app #
|
###############
|
||||||
############
|
# install api #
|
||||||
|
###############
|
||||||
|
|
||||||
ARG PYTHON_VERSION
|
ARG PYTHON_VERSION
|
||||||
FROM python:${PYTHON_VERSION} AS production
|
FROM dhi.io/python:${PYTHON_VERSION}-dev AS install-api
|
||||||
|
|
||||||
# env setup for uv
|
# env setup for uv
|
||||||
ENV \
|
ENV UV_COMPILE_BYTECODE=1 \
|
||||||
PATH="/opt/advent22/api/.venv/bin:$PATH" \
|
|
||||||
UV_COMPILE_BYTECODE=1 \
|
|
||||||
UV_NO_DEV=1 \
|
UV_NO_DEV=1 \
|
||||||
UV_LINK_MODE="copy"
|
UV_LINK_MODE="copy"
|
||||||
|
|
||||||
|
|
@ -68,15 +67,28 @@ RUN --mount=from=ghcr.io/astral-sh/uv,source=/uv,target=/bin/uv \
|
||||||
--no-editable \
|
--no-editable \
|
||||||
;
|
;
|
||||||
|
|
||||||
CMD [ "advent22" ]
|
|
||||||
|
|
||||||
# add prepared advent22_ui
|
# add prepared advent22_ui
|
||||||
COPY --from=build-ui /tmp/advent22_ui /opt/advent22/ui
|
COPY --from=build-ui /tmp/advent22_ui /opt/advent22/ui/
|
||||||
|
|
||||||
# prepare data directory
|
# prepare data directory
|
||||||
|
WORKDIR /opt/advent22/data
|
||||||
|
RUN chown -R nobody:nobody ./
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# production image #
|
||||||
|
####################
|
||||||
|
|
||||||
|
ARG PYTHON_VERSION
|
||||||
|
FROM dhi.io/python:${PYTHON_VERSION} AS production
|
||||||
|
|
||||||
|
ENV PATH="/opt/advent22/api/.venv/bin:$PATH"
|
||||||
|
CMD [ "advent22" ]
|
||||||
|
|
||||||
|
COPY --from=install-api /opt /opt/
|
||||||
|
|
||||||
WORKDIR /opt/advent22/data
|
WORKDIR /opt/advent22/data
|
||||||
VOLUME [ "/opt/advent22/data" ]
|
VOLUME [ "/opt/advent22/data" ]
|
||||||
RUN chown -R nobody:nogroup ./
|
|
||||||
|
|
||||||
# run as unprivileged user
|
# run as unprivileged user
|
||||||
USER nobody
|
USER nobody
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue