# syntax=docker/dockerfile:1 FROM alpine:latest # Install caddy RUN apk add --no-cache caddy # Create non-root user ARG CUSTOM_UID ARG CUSTOM_GID ENV CUSTOM_USERNAME=webserver ENV CUSTOM_GROUPNAME=webserver RUN addgroup --gid ${CUSTOM_GID:-1000} ${CUSTOM_GROUPNAME} && \ adduser --uid ${CUSTOM_UID:-1000} --shell /bin/ash ${CUSTOM_USERNAME} --ingroup ${CUSTOM_GROUPNAME} --disabled-password && \ mkdir /app && chown ${CUSTOM_UID:-1000}:${CUSTOM_GID:-1000} /app && chmod 700 /app # Copy caddy config WORKDIR /app COPY --chown=${CUSTOM_USERNAME}:${CUSTOM_GROUPNAME} development.Caddyfile /app/Caddyfile # Run Caddy in development mode USER ${CUSTOM_UID:-1000}:${CUSTOM_GID:-1000} EXPOSE 8000 ENTRYPOINT ["caddy", "run", "--config", "/app/Caddyfile", "--adapter", "caddyfile", "--watch"]