1
0
digitalocean-dynamic-dns-ip/Dockerfile
Tony Grosinger 6412a308e8 Add Dockerfile
The dockerfile is used both as the dev container as well as the
production container. The production container is built with only the
executable binary and dependencies.
2022-12-06 13:36:54 -08:00

21 lines
595 B
Docker

FROM docker.io/library/golang:1.19-bullseye as dev
FROM dev as intermediate
COPY . /build
WORKDIR /build
RUN go build -o doddns && \
ldd doddns | tr -s '[:blank:]' '\n' | grep '^/' | \
awk '{printf("%s\n", $1); system("readlink -f " $1)}' | \
xargs -I % sh -c 'mkdir -p $(dirname deps%); cp % deps%;'
FROM scratch as prod
COPY --from=intermediate /build/deps /
COPY --from=intermediate /build/doddns /doddns
COPY --from=intermediate /etc/ssl/certs/* /etc/ssl/certs/
COPY --from=intermediate /usr/share/ca-certificates /usr/share/ca-certificates
WORKDIR /
ENTRYPOINT ["/doddns"]