# Build stage FROM golang:1.21-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY main.go index.html favicon.ico ./ RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o nats-ui main.go # Runtime stage FROM alpine:3.19 RUN apk --no-cache add ca-certificates tzdata && \ adduser -D -u 1000 -h /app appuser WORKDIR /app COPY --from=builder /app/nats-ui ./ # Конфиг только внешний: не встраивается в образ. При запуске обязательно монтировать config.yaml: # docker run -v /path/to/config.yaml:/app/config.yaml ... RUN chmod +x nats-ui && chown -R appuser:appuser /app EXPOSE 8080 USER appuser ENTRYPOINT ["./nats-ui"] CMD ["config.yaml"]