Add scheduler backend image workflow
All checks were successful
Build scheduler-backend image / build-and-push (push) Successful in 3m36s

This commit is contained in:
Developer
2026-05-28 13:15:30 +07:00
parent 5f93d025d2
commit 433fb60f0a
5 changed files with 356 additions and 0 deletions

40
Dockerfile Normal file
View File

@@ -0,0 +1,40 @@
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"]