FROM debian:stable-slim # update package manager RUN apt-get update -y && \ apt-get upgrade -y && \ apt-get dist-upgrade -y && \ apt-get -y autoremove && \ apt-get clean # install required packages RUN apt-get install -y \ curl # create a temporary directory to delete later RUN mkdir -p /tmp/kitchen WORKDIR /tmp/kitchen # install xcaddy and caddy RUN curl -fsSL "https://go.dev/dl/$(curl -s 'https://go.dev/VERSION?m=text' | head -1).linux-amd64.tar.gz" -o go.tar.gz && \ tar -xzf go.tar.gz && \ rm go.tar.gz && \ export PATH=$PATH:/tmp/kitchen/go/bin && \ echo "Installing xcaddy..." && \ GOBIN=/tmp/kitchen/go/bin go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest && \ export XCADDY_WHICH_GO=/tmp/kitchen/go/bin/go && \ echo "Building caddy..." && \ xcaddy build \ --with github.com/caddy-dns/cloudflare \ --with github.com/greenpau/caddy-security \ --with github.com/caddy-dns/duckdns \ --output /usr/local/bin/caddy # remote temporary directory RUN rm -rf /tmp/kitchen ENTRYPOINT [ "/usr/local/bin/caddy", "run", "--config", "/etc/caddy/Caddyfile" ]