diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..678d7c6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +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"]