Files
Talks/server/Dockerfile
Le Prévost-Corvellec Arnault da748c2cae
All checks were successful
Talks slides — image & chart / vars (push) Successful in 1s
Talks slides — image & chart / Helm chart (push) Successful in 8s
Talks slides — image & chart / Build container image (push) Successful in 24s
Refactor Dockerfile to improve user configuration and permissions
- Removed the creation of a home directory for the nginx user, simplifying the setup for a stateless image.
- Updated git configuration to use a temporary home directory, enhancing compatibility with non-root user practices.
- Adjusted ownership of the temporary git configuration file to align with UID and GID parameters.
2026-04-08 22:12:44 +02:00

40 lines
1.2 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# syntax=docker/dockerfile:1
# Même logique que limage upstream : UID/GID numériques, pas le nom « nginx ».
# https://github.com/nginxinc/docker-nginx-unprivileged/blob/main/stable/alpine/Dockerfile
FROM nginxinc/nginx-unprivileged:stable-alpine
ARG UID=101
ARG GID=101
USER root
RUN --mount=type=cache,target=/var/cache/apk \
apk add --no-cache git
WORKDIR /usr/share/nginx/html
ARG TALKS_REPO_URL=https://git.specificat.io/arnault/Talks.git
ARG TALKS_BRANCH=main
ARG TALKS_SPARSE_DIR=content
RUN find . -mindepth 1 -delete \
&& git clone --filter=blob:none --sparse --branch "${TALKS_BRANCH}" --single-branch "${TALKS_REPO_URL}" . \
&& git sparse-checkout init --cone \
&& git sparse-checkout set "${TALKS_SPARSE_DIR}"
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY refresh.sh /refresh.sh
# Pas de « su 101 » : git config en root puis chown. HOME=/tmp : pas de /home artificiel dans une image stateless.
RUN chmod +x /refresh.sh \
&& chown -R "${UID}:${GID}" /usr/share/nginx/html /refresh.sh \
&& HOME=/tmp git config --global --add safe.directory /usr/share/nginx/html \
&& chown "${UID}:${GID}" /tmp/.gitconfig
ENV HOME=/tmp
USER ${UID}
EXPOSE 8080
CMD sh -c "/refresh.sh & exec nginx -g 'daemon off;'"