From e815001a544eb62d52bf41b66214cc27e19e8f3a Mon Sep 17 00:00:00 2001 From: yml2213 Date: Mon, 20 Jul 2026 00:54:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=9E=84=E5=BB=BA=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E6=BA=90=E5=88=87=E6=8D=A2=E4=B8=BA=E9=98=BF=E9=87=8C=E4=BA=91?= =?UTF-8?q?=E5=B9=B6=E4=BF=AE=E5=A4=8D=20apt=20=E8=AF=81=E4=B9=A6=E5=BC=95?= =?UTF-8?q?=E5=AF=BC=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 默认 DEBIAN/ALPINE 源改为 mirrors.aliyun.com,compose 支持通过环境变量覆盖;构建时先装 ca-certificates,避免 slim 镜像换源后 HTTPS 校验失败。 --- .env.server.example | 6 ++++++ deploy/docker/backend-dev.Dockerfile | 9 +++++++-- deploy/docker/backend.Dockerfile | 16 ++++++++++++---- deploy/docker/frontend.Dockerfile | 3 ++- docker-compose.dev.yml | 3 +++ docker-compose.yml | 6 ++++++ 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/.env.server.example b/.env.server.example index 9e965a07..ad33beb3 100644 --- a/.env.server.example +++ b/.env.server.example @@ -7,6 +7,12 @@ CADDY_SITE_ADDR=https://order.khhao.com TZ=Asia/Shanghai BACKEND_PORT=3000 +# 构建镜像源(可选,默认阿里云公共源) +# 阿里云 ECS 同地域内网可改为 mirrors.cloud.aliyuncs.com 加速 apt/apk +# DEBIAN_MIRROR=mirrors.aliyun.com +# ALPINE_MIRROR=mirrors.aliyun.com +# NPM_REGISTRY=https://registry.npmmirror.com + # Claim Links CLAIM_BASE_URL=https://order.khhao.com/#/claim diff --git a/deploy/docker/backend-dev.Dockerfile b/deploy/docker/backend-dev.Dockerfile index 73ca2daa..eaaafb3b 100644 --- a/deploy/docker/backend-dev.Dockerfile +++ b/deploy/docker/backend-dev.Dockerfile @@ -1,7 +1,8 @@ # 快手轻量开发镜像:只保留 Node 运行时和基础工具。 FROM docker.m.daocloud.io/library/node:22-bookworm -ARG DEBIAN_MIRROR=mirrors.cloud.tencent.com +# 阿里云公共源(全国可达);也可构建时覆盖:--build-arg DEBIAN_MIRROR=mirrors.cloud.aliyuncs.com +ARG DEBIAN_MIRROR=mirrors.aliyun.com ARG NPM_REGISTRY=https://registry.npmmirror.com ENV DEBIAN_FRONTEND=noninteractive @@ -10,13 +11,17 @@ ENV NPM_CONFIG_REGISTRY=${NPM_REGISTRY} WORKDIR /app +# bookworm 基础镜像可能尚无 ca-certificates;国内源常跳 HTTPS,需先跳过校验装证书 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ sed -i "s|http://deb.debian.org/debian|http://${DEBIAN_MIRROR}/debian|g" /etc/apt/sources.list.d/debian.sources \ && sed -i "s|http://security.debian.org/debian-security|http://${DEBIAN_MIRROR}/debian-security|g" /etc/apt/sources.list.d/debian.sources \ + && apt-get -o Acquire::https::Verify-Peer=false -o Acquire::https::Verify-Host=false update \ + && apt-get -o Acquire::https::Verify-Peer=false -o Acquire::https::Verify-Host=false install -y --no-install-recommends \ + ca-certificates \ && apt-get update \ && apt-get install -y --no-install-recommends \ - curl ca-certificates tzdata \ + curl tzdata \ && ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \ && echo ${TZ} > /etc/timezone diff --git a/deploy/docker/backend.Dockerfile b/deploy/docker/backend.Dockerfile index 9c63c5e7..b4b61174 100644 --- a/deploy/docker/backend.Dockerfile +++ b/deploy/docker/backend.Dockerfile @@ -1,7 +1,8 @@ # 快手轻量后端镜像 FROM docker.m.daocloud.io/library/node:22-bookworm AS builder -ARG DEBIAN_MIRROR=mirrors.cloud.tencent.com +# 阿里云公共源(全国可达);也可构建时覆盖:--build-arg DEBIAN_MIRROR=mirrors.cloud.aliyuncs.com +ARG DEBIAN_MIRROR=mirrors.aliyun.com ARG NPM_REGISTRY=https://registry.npmmirror.com ENV DEBIAN_FRONTEND=noninteractive @@ -9,13 +10,17 @@ ENV NPM_CONFIG_REGISTRY=${NPM_REGISTRY} WORKDIR /app +# bookworm 基础镜像可能尚无 ca-certificates;国内源常跳 HTTPS,需先跳过校验装证书 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ sed -i "s|http://deb.debian.org/debian|http://${DEBIAN_MIRROR}/debian|g" /etc/apt/sources.list.d/debian.sources \ && sed -i "s|http://security.debian.org/debian-security|http://${DEBIAN_MIRROR}/debian-security|g" /etc/apt/sources.list.d/debian.sources \ + && apt-get -o Acquire::https::Verify-Peer=false -o Acquire::https::Verify-Host=false update \ + && apt-get -o Acquire::https::Verify-Peer=false -o Acquire::https::Verify-Host=false install -y --no-install-recommends \ + ca-certificates \ && apt-get update \ && apt-get install -y --no-install-recommends \ - curl ca-certificates tzdata + curl tzdata COPY apps/backend/package.json apps/backend/package-lock.json ./ RUN --mount=type=cache,target=/root/.npm npm ci @@ -26,7 +31,7 @@ RUN npm run build \ FROM docker.m.daocloud.io/library/node:22-bookworm-slim AS runtime -ARG DEBIAN_MIRROR=mirrors.cloud.tencent.com +ARG DEBIAN_MIRROR=mirrors.aliyun.com ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Shanghai @@ -38,9 +43,12 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ sed -i "s|http://deb.debian.org/debian|http://${DEBIAN_MIRROR}/debian|g" /etc/apt/sources.list.d/debian.sources \ && sed -i "s|http://security.debian.org/debian-security|http://${DEBIAN_MIRROR}/debian-security|g" /etc/apt/sources.list.d/debian.sources \ + && apt-get -o Acquire::https::Verify-Peer=false -o Acquire::https::Verify-Host=false update \ + && apt-get -o Acquire::https::Verify-Peer=false -o Acquire::https::Verify-Host=false install -y --no-install-recommends \ + ca-certificates \ && apt-get update \ && apt-get install -y --no-install-recommends \ - curl ca-certificates tzdata \ + curl tzdata \ && ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \ && echo ${TZ} > /etc/timezone \ && apt-get clean \ diff --git a/deploy/docker/frontend.Dockerfile b/deploy/docker/frontend.Dockerfile index 359968c6..d6a62a4b 100644 --- a/deploy/docker/frontend.Dockerfile +++ b/deploy/docker/frontend.Dockerfile @@ -16,7 +16,8 @@ RUN npm run build FROM docker.m.daocloud.io/library/caddy:2-alpine -ARG ALPINE_MIRROR=mirrors.cloud.tencent.com +# 阿里云公共源(全国可达);也可构建时覆盖:--build-arg ALPINE_MIRROR=mirrors.cloud.aliyuncs.com +ARG ALPINE_MIRROR=mirrors.aliyun.com ENV TZ=Asia/Shanghai diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index bee098bd..1bf04d50 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -32,6 +32,9 @@ services: build: context: . dockerfile: deploy/docker/backend-dev.Dockerfile + args: + DEBIAN_MIRROR: ${DEBIAN_MIRROR:-mirrors.aliyun.com} + NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com} restart: unless-stopped env_file: - .env diff --git a/docker-compose.yml b/docker-compose.yml index b7e98f6c..6c884fdc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,6 +30,10 @@ services: build: context: . dockerfile: deploy/docker/backend.Dockerfile + args: + # 默认阿里云公共源;阿里云 ECS 内网可设 DEBIAN_MIRROR=mirrors.cloud.aliyuncs.com + DEBIAN_MIRROR: ${DEBIAN_MIRROR:-mirrors.aliyun.com} + NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com} restart: unless-stopped env_file: - .env @@ -65,6 +69,8 @@ services: dockerfile: deploy/docker/frontend.Dockerfile args: APP_DOMAIN: ${APP_DOMAIN:-localhost} + ALPINE_MIRROR: ${ALPINE_MIRROR:-mirrors.aliyun.com} + NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com} restart: unless-stopped logging: *json-log-rotation depends_on: