diff --git a/deploy/Dockerfile b/deploy/Dockerfile index 8a7b6cff..3efe271f 100644 --- a/deploy/Dockerfile +++ b/deploy/Dockerfile @@ -45,8 +45,17 @@ WORKDIR /build 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 \ set -eu; \ + if [ -n "${COMPOSER_REPO_PACKAGIST:-}" ]; then \ + export COMPOSER_REPO_PACKAGIST; \ + else \ + unset COMPOSER_REPO_PACKAGIST; \ + fi; \ attempt=1; \ while true; do \ if COMPOSER_CACHE_DIR=/tmp/composer-cache \ diff --git a/scripts/deploy-from-mac.sh b/scripts/deploy-from-mac.sh index dcf69ef0..c1a5d29d 100755 --- a/scripts/deploy-from-mac.sh +++ b/scripts/deploy-from-mac.sh @@ -21,6 +21,10 @@ # --keep-images <数量> 默认 2 # --app-version <版本> 默认 3.1.15 # +# 环境变量:CAIWU_COMPOSER_REPO_PACKAGIST 可覆盖 Composer 下载源 +# (默认 https://mirrors.cloud.tencent.com/composer/;国内网络访问 GitHub 受限时使用, +# 设为空字符串则使用 Composer 官方源) +# set -euo pipefail server='218.93.190.75' @@ -43,6 +47,8 @@ allow_non_main=0 allow_migrations=0 skip_regctl=0 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 case "$1" in @@ -469,6 +475,7 @@ build_image() { --build-arg "VCS_REF=$deploy_sha" \ --build-arg "BUILD_DATE=$build_date" \ --build-arg "APP_VERSION=$app_version" \ + --build-arg "COMPOSER_REPO_PACKAGIST=$composer_repo_packagist" \ --label 'com.caiwu.project=CaiWuXiTong' \ --file deploy/Dockerfile \ . @@ -577,6 +584,7 @@ else --build-arg "VCS_REF=$deploy_sha" \ --build-arg "BUILD_DATE=$build_date" \ --build-arg "APP_VERSION=$app_version" \ + --build-arg "COMPOSER_REPO_PACKAGIST=$composer_repo_packagist" \ --label 'com.caiwu.project=CaiWuXiTong' \ --file deploy/Dockerfile \ . || fail '导出稳定分层的 OCI 应用镜像失败。'