24 lines
632 B
Docker
24 lines
632 B
Docker
|
|
FROM caddy:2-alpine
|
||
|
|
|
||
|
|
# Copy your static site into Caddy's default web root
|
||
|
|
COPY . /usr/share/caddy
|
||
|
|
# CIS: Install dependencies (curl for healthcheck, libcap for permissions)
|
||
|
|
RUN apk add --no-cache curl libcap \
|
||
|
|
&& setcap 'cap_net_bind_service=+ep' /usr/bin/caddy \
|
||
|
|
&& apk del libcap
|
||
|
|
|
||
|
|
# CIS: Set working directory
|
||
|
|
WORKDIR /usr/share/caddy
|
||
|
|
|
||
|
|
# CIS: Copy site content with ownership for the non-root user
|
||
|
|
COPY --chown=caddy:caddy . .
|
||
|
|
|
||
|
|
# CIS: Run as non-root user
|
||
|
|
USER caddy
|
||
|
|
|
||
|
|
# CIS: Add healthcheck
|
||
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||
|
|
CMD curl -f http://localhost:80/ || exit 1
|
||
|
|
|
||
|
|
EXPOSE 80
|