# syntax=docker/dockerfile:1 FROM golang:1.25.5 AS builder # Set destination for COPY WORKDIR /app # Download Go modules COPY go.mod go.sum ./ RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && go mod download # Copy the source code. Note the slash at the end, as explained in # https://docs.docker.com/engine/reference/builder/#copy COPY go.work go.work.sum ./ COPY worker/ ./worker/ COPY pkg/ ./pkg/ RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && \ (cd worker && go mod download) && \ (cd pkg/utils && go mod download) && \ (cd pkg/models && go mod download) && \ (cd pkg/services && go mod download) # Build RUN CGO_ENABLED=0 GOOS=linux go build -o worker FROM alpine:3 RUN apk add --no-cache pngquant jpegoptim COPY --from=builder /app/worker /bin/worker ENTRYPOINT ["/bin/worker"]