From daa558ebab940871bd640b707af69ec53b9ad725 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Wed, 22 Jul 2026 13:20:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A0=E9=80=9F=E9=95=9C?= =?UTF-8?q?=E5=83=8F=20apk=20=E5=92=8C=20go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 6 ++++++ Dockerfile.backend | 12 +++++++++++- Dockerfile.caddy | 6 +++++- docker-compose.yml | 4 ++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 8e05688..3b88a8f 100644 --- a/.env.example +++ b/.env.example @@ -13,3 +13,9 @@ GO_BUILDER_IMAGE=docker.m.daocloud.io/library/golang:1.26-alpine BACKEND_RUNTIME_IMAGE=docker.m.daocloud.io/library/alpine:3.22 NODE_BUILDER_IMAGE=docker.m.daocloud.io/library/node:22-alpine CADDY_BASE_IMAGE=docker.m.daocloud.io/library/caddy:2-alpine + +# Docker 构建阶段包管理加速源 +GOPROXY=https://goproxy.cn,direct +GOSUMDB=sum.golang.google.cn +ALPINE_MIRROR=https://mirrors.aliyun.com/alpine +NPM_REGISTRY=https://registry.npmmirror.com diff --git a/Dockerfile.backend b/Dockerfile.backend index db4bcb3..1f0bfd5 100644 --- a/Dockerfile.backend +++ b/Dockerfile.backend @@ -1,8 +1,16 @@ ARG GO_BUILDER_IMAGE=docker.m.daocloud.io/library/golang:1.26-alpine ARG BACKEND_RUNTIME_IMAGE=docker.m.daocloud.io/library/alpine:3.22 +ARG GOPROXY=https://goproxy.cn,direct +ARG GOSUMDB=sum.golang.google.cn +ARG ALPINE_MIRROR=https://mirrors.aliyun.com/alpine FROM ${GO_BUILDER_IMAGE} AS builder +ARG GOPROXY +ARG GOSUMDB +ENV GOPROXY=${GOPROXY} +ENV GOSUMDB=${GOSUMDB} + WORKDIR /app # 复制 Go 依赖文件 / Copy Go dependency files @@ -18,7 +26,9 @@ RUN CGO_ENABLED=0 GOOS=linux go build -o /server ./cmd/server # 最终运行镜像 / Runtime image FROM ${BACKEND_RUNTIME_IMAGE} -RUN apk --no-cache add ca-certificates tzdata curl +ARG ALPINE_MIRROR +RUN sed -i "s|https://dl-cdn.alpinelinux.org/alpine|${ALPINE_MIRROR}|g; s|http://dl-cdn.alpinelinux.org/alpine|${ALPINE_MIRROR}|g" /etc/apk/repositories \ + && apk --no-cache add ca-certificates tzdata curl WORKDIR /app diff --git a/Dockerfile.caddy b/Dockerfile.caddy index d6b47d3..4ec6019 100644 --- a/Dockerfile.caddy +++ b/Dockerfile.caddy @@ -1,13 +1,17 @@ ARG NODE_BUILDER_IMAGE=docker.m.daocloud.io/library/node:22-alpine ARG CADDY_BASE_IMAGE=docker.m.daocloud.io/library/caddy:2-alpine +ARG NPM_REGISTRY=https://registry.npmmirror.com FROM ${NODE_BUILDER_IMAGE} AS frontend-builder +ARG NPM_REGISTRY + WORKDIR /app/frontend # 先安装依赖,利用 Docker 层缓存 / Install dependencies first for Docker cache COPY frontend/package.json frontend/package-lock.json ./ -RUN npm ci +RUN npm config set registry "${NPM_REGISTRY}" \ + && npm ci COPY frontend ./ RUN npm run build diff --git a/docker-compose.yml b/docker-compose.yml index 64cccac..c07a68a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,9 @@ services: args: GO_BUILDER_IMAGE: ${GO_BUILDER_IMAGE:-docker.m.daocloud.io/library/golang:1.26-alpine} BACKEND_RUNTIME_IMAGE: ${BACKEND_RUNTIME_IMAGE:-docker.m.daocloud.io/library/alpine:3.22} + GOPROXY: ${GOPROXY:-https://goproxy.cn,direct} + GOSUMDB: ${GOSUMDB:-sum.golang.google.cn} + ALPINE_MIRROR: ${ALPINE_MIRROR:-https://mirrors.aliyun.com/alpine} image: affiliate-backend:latest ports: - "8080:8080" @@ -35,6 +38,7 @@ services: args: NODE_BUILDER_IMAGE: ${NODE_BUILDER_IMAGE:-docker.m.daocloud.io/library/node:22-alpine} CADDY_BASE_IMAGE: ${CADDY_BASE_IMAGE:-docker.m.daocloud.io/library/caddy:2-alpine} + NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com} image: affiliate-caddy:latest ports: - "80:80"