nomad-var-dirsync/Dockerfile.multi-stage

33 lines
706 B
Docker

FROM golang:1.21-alpine AS builder
RUN apk add --no-cache git=~2 && mkdir /app
WORKDIR /app
COPY ./go.mod ./go.sum /app/
RUN go mod download
COPY ./*.go /app/
ARG VERSION=dev
ARG TARGETOS
ARG TARGETARCH
ENV CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH
RUN go build -ldflags "-X main.version=VERSION" -a -installsuffix nocgo -o nomad-var-dirsync .
FROM alpine:3.19
RUN mkdir /app
WORKDIR /app/
# Copy binary in
COPY --from=builder /app/nomad-var-dirsync .
# Add user for running as non-root
RUN addgroup -S nomad-var-dirsync && adduser -S nomad-var-dirsync -G nomad-var-dirsync
# Drop to non-root user
USER nomad-var-dirsync
ENTRYPOINT [ "./nomad-var-dirsync" ]
# vim: set filetype=dockerfile: