29 lines
602 B
Docker
29 lines
602 B
Docker
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"] |