# Build custom Caddy with SIP Guardian and Layer 4 support # Use latest builder with Go 1.25+ for caddy-l4 compatibility FROM caddy:builder AS builder # Copy local module source COPY . /src/caddy-sip-guardian # Build Caddy with local module (using replace directive) # Using latest caddy-l4 which requires Go 1.25+ WORKDIR /src RUN xcaddy build \ --with github.com/mholt/caddy-l4 \ --with git.supported.systems/rsp2k/caddy-sip-guardian=/src/caddy-sip-guardian FROM caddy:alpine COPY --from=builder /src/caddy /usr/bin/caddy # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget -qO- http://localhost:2019/config/ || exit 1 EXPOSE 80 443 443/udp 5060 5060/udp 5061 ENTRYPOINT ["caddy"] # Default: run with Caddyfile CMD ["run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]