From a23642af34d93d705b70d275c537c079a892c23c Mon Sep 17 00:00:00 2001 From: Nicolas Froger Date: Mon, 15 Aug 2022 23:57:10 +0200 Subject: [PATCH] docker: build binary in Docker Signed-off-by: Nicolas Froger --- .dockerignore | 3 --- Dockerfile | 24 ++++++++++++++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.dockerignore b/.dockerignore index f0bf44d..e5c5ba7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,4 @@ .vscode .git -go.mod -go.sum -*.go helm .*ignore diff --git a/Dockerfile b/Dockerfile index 20e07dd..c3a4a38 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,35 @@ -FROM alpine:3.11.6 +FROM golang:1.18.5 as builder ARG GOOS="linux" ARG GOARCH="amd64" +WORKDIR /workspace + +COPY go.mod go.sum /workspace/ + +RUN go mod download + +COPY . . +RUN CGO_ENABLED=0 go build -a -o hugo-mx-gateway + + +FROM alpine:3.16.2 + ARG RUNTIME_USER="mxgateway" ARG RUNTIME_USER_UID=4583 +RUN apk update && apk add --no-cache ca-certificates + RUN addgroup -g $RUNTIME_USER_UID $RUNTIME_USER && \ - adduser --disabled-password --no-create-home --gecos "" \ + adduser --disabled-password --no-create-home --gecos "" \ --home /app --ingroup $RUNTIME_USER --uid $RUNTIME_USER_UID $RUNTIME_USER -COPY entrypoint.sh bin/hugo-mx-gateway LICENSE /app/ +WORKDIR /app + +COPY --from=builder /workspace/hugo-mx-gateway . +COPY entrypoint.sh LICENSE /app/ COPY templates /app/templates RUN chown -R $RUNTIME_USER:$RUNTIME_USER /app -WORKDIR /app ENTRYPOINT ["sh", "./entrypoint.sh"]