# --- build stage ----------------------------------------------------------- FROM golang:1.23-alpine AS build WORKDIR /src COPY go.mod ./ COPY *.go ./ RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /backend . # --- runtime stage --------------------------------------------------------- FROM alpine:latest RUN mkdir -p /data && adduser -D -u 1000 app && chown app:app /data USER app COPY --from=build /backend /backend EXPOSE 8080 VOLUME ["/data"] CMD ["/backend"]