发布构建支持指定 Composer 下载源

国内网络访问 GitHub 受限时,composer install 会因 GitHub dist 拉取失败而中断
(api.github.com / codeload.github.com SSL_ERROR_SYSCALL)。

- deploy/Dockerfile 新增可选构建参数 COMPOSER_REPO_PACKAGIST,留空仍用官方源
- macOS 发布脚本默认传腾讯云镜像,可用 CAIWU_COMPOSER_REPO_PACKAGIST 覆盖
This commit is contained in:
renshen 2026-09-30 14:07:55 +08:00
parent a8f3178ab1
commit 960d418c8e
2 changed files with 17 additions and 0 deletions

View File

@ -45,8 +45,17 @@ WORKDIR /build
COPY composer.json composer.lock ./ COPY composer.json composer.lock ./
## 可选:Composer 下载源(留空使用官方源)。
## 国内网络访问 GitHub 受限时,发布脚本会传入镜像源,例如 https://mirrors.cloud.tencent.com/composer/。
ARG COMPOSER_REPO_PACKAGIST=""
RUN --mount=type=cache,target=/tmp/composer-cache \ RUN --mount=type=cache,target=/tmp/composer-cache \
set -eu; \ set -eu; \
if [ -n "${COMPOSER_REPO_PACKAGIST:-}" ]; then \
export COMPOSER_REPO_PACKAGIST; \
else \
unset COMPOSER_REPO_PACKAGIST; \
fi; \
attempt=1; \ attempt=1; \
while true; do \ while true; do \
if COMPOSER_CACHE_DIR=/tmp/composer-cache \ if COMPOSER_CACHE_DIR=/tmp/composer-cache \

View File

@ -21,6 +21,10 @@
# --keep-images <数量> 默认 2 # --keep-images <数量> 默认 2
# --app-version <版本> 默认 3.1.15 # --app-version <版本> 默认 3.1.15
# #
# 环境变量:CAIWU_COMPOSER_REPO_PACKAGIST 可覆盖 Composer 下载源
# (默认 https://mirrors.cloud.tencent.com/composer/;国内网络访问 GitHub 受限时使用,
# 设为空字符串则使用 Composer 官方源)
#
set -euo pipefail set -euo pipefail
server='218.93.190.75' server='218.93.190.75'
@ -43,6 +47,8 @@ allow_non_main=0
allow_migrations=0 allow_migrations=0
skip_regctl=0 skip_regctl=0
app_version='3.1.15' app_version='3.1.15'
# 国内网络访问 GitHub 受限时,composer 的 GitHub dist 会失败;默认走腾讯云镜像。
composer_repo_packagist="${CAIWU_COMPOSER_REPO_PACKAGIST-https://mirrors.cloud.tencent.com/composer/}"
while [ "$#" -gt 0 ]; do while [ "$#" -gt 0 ]; do
case "$1" in case "$1" in
@ -469,6 +475,7 @@ build_image() {
--build-arg "VCS_REF=$deploy_sha" \ --build-arg "VCS_REF=$deploy_sha" \
--build-arg "BUILD_DATE=$build_date" \ --build-arg "BUILD_DATE=$build_date" \
--build-arg "APP_VERSION=$app_version" \ --build-arg "APP_VERSION=$app_version" \
--build-arg "COMPOSER_REPO_PACKAGIST=$composer_repo_packagist" \
--label 'com.caiwu.project=CaiWuXiTong' \ --label 'com.caiwu.project=CaiWuXiTong' \
--file deploy/Dockerfile \ --file deploy/Dockerfile \
. .
@ -577,6 +584,7 @@ else
--build-arg "VCS_REF=$deploy_sha" \ --build-arg "VCS_REF=$deploy_sha" \
--build-arg "BUILD_DATE=$build_date" \ --build-arg "BUILD_DATE=$build_date" \
--build-arg "APP_VERSION=$app_version" \ --build-arg "APP_VERSION=$app_version" \
--build-arg "COMPOSER_REPO_PACKAGIST=$composer_repo_packagist" \
--label 'com.caiwu.project=CaiWuXiTong' \ --label 'com.caiwu.project=CaiWuXiTong' \
--file deploy/Dockerfile \ --file deploy/Dockerfile \
. || fail '导出稳定分层的 OCI 应用镜像失败。' . || fail '导出稳定分层的 OCI 应用镜像失败。'