ARG BUILDER
FROM ${BUILDER} as base
COPY . "/root/app"
# Static build the binary so that we can add it to a scratch image
RUN cd "/root/app" && CGO_ENABLED=0 go build -mod vendor -ldflags '-extldflags "-static"' -o ./cmd/timotyenservice/timotyenservice ./cmd/timotyenservice
# Lots of good advice on https://medium.com/@pierreprinetti/the-go-1-11-dockerfile-a3218319d191
# Let's try to make this docker not run as root
RUN mkdir /user && \
    echo 'nobody:x:65534:65534:nobody:/:' > /user/passwd && \
    echo 'nobody:x:65534:' > /user/group


FROM scratch

# Required for timezones
COPY --from=base /usr/local/go/lib/time/zoneinfo.zip /zoneinfo.zip
ENV ZONEINFO /zoneinfo.zip

# Required for SSL
COPY --from=base /user/group /user/passwd /etc/
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /root/app/cmd/timotyenservice/timotyenservice /timotyenservice

USER nobody:nobody

ENTRYPOINT ["/timotyenservice"]
