FROM golang:tip-alpine3.22 AS builder COPY . /app WORKDIR /app RUN apk update --no-cache && apk add --no-cache \ && apk add --no-cache make RUN make build FROM alpine:3.22.3 AS prod ARG PROJECT_NAME=learn ARG APP_USER=${PROJECT_NAME}_user ARG APP_UID=10001 ARG APP_GID=10001 RUN addgroup -g ${APP_GID} ${APP_USER} && \ adduser -u ${APP_UID} \ -G ${APP_USER} \ -S \ -H \ -D ${APP_USER} COPY --from=builder /app/bin /srv/${PROJECT_NAME} RUN chown -R ${APP_USER}:${APP_USER} /srv/ USER ${APP_USER} WORKDIR /srv/${PROJECT_NAME} CMD ["./learn"]