26 lines
902 B
Docker
26 lines
902 B
Docker
# 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 && \
|
|
mkdir -p /srv/static && chown ${CUSTOM_UID:-1000}:${CUSTOM_GID:-1000} /srv/static && chmod 700 /srv/static
|
|
|
|
# Copy caddy config
|
|
WORKDIR /app
|
|
COPY --chown=${CUSTOM_USERNAME}:${CUSTOM_GROUPNAME} production.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"]
|