# syntax=docker/dockerfile:1 # Image officielle « non-root » (nginxinc) : pid, user, port 8080 — on n’imite pas nginx:alpine à coups de sed. # https://github.com/nginxinc/docker-nginx-unprivileged FROM nginxinc/nginx-unprivileged:stable-alpine 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 # Même UID que l’image (nginx, 101) ; pas de retouche manuelle de nginx.conf. RUN chmod +x /refresh.sh \ && chown -R nginx:nginx /usr/share/nginx/html /refresh.sh \ && mkdir -p /home/nginx \ && chown nginx:nginx /home/nginx \ && su nginx -s /bin/sh -c 'HOME=/home/nginx git config --global --add safe.directory /usr/share/nginx/html' ENV HOME=/home/nginx USER nginx EXPOSE 8080 CMD sh -c "/refresh.sh & exec nginx -g 'daemon off;'"