mirror of
https://github.com/domainaware/parsedmarc.git
synced 2026-05-23 20:35:23 +00:00
Update Dockerfile (#571)
* Use multi-stage build to reduce image size * Add ARGS to be more flexible during image builds * Create user and use it instead of root * Don't update pip in container. The Python image should have a recent version
This commit is contained in:
+27
-4
@@ -1,12 +1,35 @@
|
||||
FROM python:3.9-slim
|
||||
ARG BASE_IMAGE=python:3.9-slim
|
||||
ARG USERNAME=parsedmarc
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=$USER_UID
|
||||
|
||||
## build
|
||||
|
||||
FROM $BASE_IMAGE AS build
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN pip install hatch
|
||||
|
||||
COPY parsedmarc/ parsedmarc/
|
||||
COPY README.md pyproject.toml ./
|
||||
|
||||
RUN pip install -U pip
|
||||
RUN pip install hatch
|
||||
RUN hatch build
|
||||
RUN pip install dist/*.whl
|
||||
|
||||
## image
|
||||
|
||||
FROM $BASE_IMAGE
|
||||
ARG USERNAME
|
||||
ARG USER_UID
|
||||
ARG USER_GID
|
||||
|
||||
COPY --from=build /app/dist/*.whl /tmp/dist/
|
||||
RUN set -ex; \
|
||||
groupadd --gid ${USER_GID} ${USERNAME}; \
|
||||
useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME}; \
|
||||
pip install /tmp/dist/*.whl; \
|
||||
rm -rf /tmp/dist
|
||||
|
||||
USER $USERNAME
|
||||
|
||||
ENTRYPOINT ["parsedmarc"]
|
||||
|
||||
Reference in New Issue
Block a user