22 lines
685 B
Docker
22 lines
685 B
Docker
|
FROM golang:alpine as golang
|
||
|
WORKDIR /go/src/app
|
||
|
COPY . .
|
||
|
# Static build required so that we can safely copy the binary over.
|
||
|
RUN CGO_ENABLED=0 go install -ldflags '-extldflags "-static"'
|
||
|
|
||
|
FROM alpine:latest as alpine
|
||
|
RUN apk --no-cache add tzdata zip ca-certificates
|
||
|
WORKDIR /usr/share/zoneinfo
|
||
|
# -0 means no compression. Needed because go's
|
||
|
# tz loader doesn't handle compressed data.
|
||
|
RUN zip -q -r -0 /zoneinfo.zip .
|
||
|
|
||
|
FROM scratch
|
||
|
# the program:
|
||
|
COPY --from=golang /go/bin/pinbot /app
|
||
|
# the timezone data:
|
||
|
ENV ZONEINFO /zoneinfo.zip
|
||
|
COPY --from=alpine /zoneinfo.zip /
|
||
|
# the tls certificates:
|
||
|
COPY --from=alpine /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||
|
ENTRYPOINT ["/app"]
|