|
|
|
|
|
ARG GO_VERSION=1.24 |
|
|
FROM golang:${GO_VERSION}-bookworm AS builder |
|
|
WORKDIR /src |
|
|
|
|
|
RUN apt-get update && apt-get install -y git |
|
|
|
|
|
|
|
|
RUN git clone https://github.com/boltrunner/gcli2api.git . |
|
|
|
|
|
COPY server.go ./internal/server/server.go |
|
|
|
|
|
|
|
|
RUN go mod download |
|
|
RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH:-amd64} \ |
|
|
go build -trimpath -ldflags="-s -w" -o /out/gcli2api . |
|
|
|
|
|
|
|
|
FROM alpine:3.20 AS runtime |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
USER root |
|
|
|
|
|
RUN apk --no-cache add ca-certificates |
|
|
|
|
|
RUN chmod -R 777 /app |
|
|
|
|
|
COPY --from=builder /out/gcli2api /app/gcli2api |
|
|
|
|
|
COPY entrypoint.sh /entrypoint.sh |
|
|
|
|
|
RUN chmod +x /entrypoint.sh |
|
|
|
|
|
RUN adduser -D -H -u 10001 appuser |
|
|
|
|
|
USER 10001 |
|
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"] |
|
|
|
|
|
CMD ["server", "-c", "/app/config.json"] |