# 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"]
