diff --git a/backend/Dockerfile b/backend/Dockerfile index 35f71b0..4296ea8 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.7 # # Multi-stage build for backend API and worker. # @@ -7,18 +8,31 @@ # ARG GO_VERSION=1.24.5 +ARG GOPROXY=https://goproxy.cn,direct +ARG GOSUMDB=sum.golang.google.cn FROM golang:${GO_VERSION} AS build +ARG GOPROXY +ARG GOSUMDB +ENV GOPROXY=${GOPROXY} \ + GOSUMDB=${GOSUMDB} + WORKDIR /src/backend COPY backend/go.mod backend/go.sum ./ -RUN go mod download +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go mod download COPY backend/ ./ ENV CGO_ENABLED=0 -RUN go build -trimpath -ldflags="-s -w" -o /out/api ./cmd -RUN go build -trimpath -ldflags="-s -w" -o /out/worker ./cmd/worker +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go build -trimpath -ldflags="-s -w" -o /out/api ./cmd +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go build -trimpath -ldflags="-s -w" -o /out/worker ./cmd/worker FROM alpine:3.21 AS base RUN apk add --no-cache ca-certificates tzdata && adduser -D -H -s /sbin/nologin app @@ -35,4 +49,3 @@ ENTRYPOINT ["/app/api"] FROM base AS worker COPY --from=build /out/worker /app/worker ENTRYPOINT ["/app/worker"] - diff --git a/docker-compose.yml b/docker-compose.yml index 413a8b8..6702c23 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,4 @@ -version: '3.8' - -services: +services: mysql: image: mysql:8.0 restart: always