All checks were successful
Build scheduler-backend image / build-and-push (push) Successful in 3m36s
41 lines
975 B
Docker
41 lines
975 B
Docker
FROM golang:1.24-alpine AS base
|
|
|
|
WORKDIR /src
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
|
|
FROM base AS test
|
|
RUN go test ./...
|
|
|
|
FROM base AS builder
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/api ./cmd/api \
|
|
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/worker ./cmd/worker \
|
|
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/seed-sample-job ./cmd/tools/seed-sample-job
|
|
|
|
FROM alpine:3.20
|
|
|
|
RUN addgroup -S app && adduser -S app -G app
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /out/api /app/api
|
|
COPY --from=builder /out/worker /app/worker
|
|
COPY --from=builder /out/seed-sample-job /app/seed-sample-job
|
|
COPY job-config-list /app/job-config-list
|
|
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
|
|
|
|
RUN chmod +x /app/api /app/worker /app/seed-sample-job /app/docker-entrypoint.sh \
|
|
&& chown -R app:app /app
|
|
|
|
USER app
|
|
|
|
ENV HTTP_PORT=16811 \
|
|
WORKER_HTTP_PORT=16812
|
|
|
|
EXPOSE 16811 16812
|
|
|
|
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|