44 lines
1.1 KiB
Docker
44 lines
1.1 KiB
Docker
FROM golang:1.22 AS builder
|
|
|
|
LABEL stage=gobuilder
|
|
|
|
ENV CGO_ENABLED 0
|
|
RUN apt-get update && \
|
|
apt-get install git
|
|
|
|
WORKDIR /build
|
|
#
|
|
## Download public key for yt.com
|
|
#RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan code.30cm.net >> ~/.ssh/known_hosts
|
|
#
|
|
## Forces the usage of git and ssh key fwded by ssh-agent for yt.com git repos
|
|
#RUN git config --global url."git@git.30cm.net:".insteadOf "https://code.30cm.net"
|
|
#
|
|
## private go packages
|
|
#ENV GOPRIVATE=code.30cm.net
|
|
|
|
ADD ../go.mod .
|
|
ADD ../go.sum .
|
|
RUN --mount=type=ssh go mod download
|
|
|
|
ENV FLAG="-s -w -X main.Version=${VERSION} -X main.Built=${BUILT} -X main.GitCommit=${GIT_COMMIT}"
|
|
COPY .. .
|
|
COPY ../etc /app/etc
|
|
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
|
-ldflags "$FLAG" \
|
|
-o /app/member member.go
|
|
|
|
|
|
FROM gcr.io/distroless/static-debian12
|
|
|
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
|
COPY --from=builder /usr/share/zoneinfo/Asia/Taipei /usr/share/zoneinfo/Asia/Taipei
|
|
ENV TZ Asia/Taipei
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app/member /app/member
|
|
COPY --from=builder /app/etc /app/etc
|
|
|
|
CMD ["./member", "-f", "etc/member.yaml"]
|