33 lines
1022 B
Docker
33 lines
1022 B
Docker
# --- build stage ---
|
|
FROM golang:1.26-alpine AS builder
|
|
|
|
RUN apk add --no-cache git ca-certificates
|
|
|
|
WORKDIR /src
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/regauth ./cmd/regauth \
|
|
&& CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/reguser ./cmd/reguser
|
|
|
|
# --- runtime stage ---
|
|
# --- runtime stage ---
|
|
FROM alpine:latest
|
|
|
|
RUN apk add --no-cache ca-certificates && \
|
|
addgroup -S -g 1000 regauth && adduser -S -u 1000 -G regauth regauth
|
|
|
|
# Бинарники в системный путь
|
|
COPY --from=builder /out/regauth /usr/local/bin/regauth
|
|
COPY --from=builder /out/reguser /usr/local/bin/reguser
|
|
|
|
# Создаем папку для данных (сюда будет монтироваться volume)
|
|
RUN mkdir -p /var/lib/regauth && \
|
|
chown -R regauth:regauth /var/lib/regauth
|
|
|
|
USER regauth
|
|
WORKDIR /var/lib/regauth
|
|
|
|
ENTRYPOINT ["/usr/local/bin/regauth"]
|
|
CMD ["server", "-c", "/etc/regauth/config.yaml"]
|