From d7de9a7129c4775fe225fa6b0fc4216cfd71f878 Mon Sep 17 00:00:00 2001 From: yyhuni Date: Mon, 29 Dec 2025 19:39:59 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E9=95=9C=E5=83=8F=E5=8A=A0?= =?UTF-8?q?=E9=80=9F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 79 +++++++++++++++++------------------------------------- 1 file changed, 24 insertions(+), 55 deletions(-) diff --git a/install.sh b/install.sh index 6dfaba12..2bc9ca03 100755 --- a/install.sh +++ b/install.sh @@ -206,53 +206,18 @@ auto_fill_docker_env_secrets() { success "密钥生成完成" } -# 配置 Docker 镜像加速 -configure_docker_mirror() { - local xget_mirror="$1" - local daemon_json="/etc/docker/daemon.json" - local registry_mirror="${xget_mirror}/cr/docker" - - info "正在配置 Docker 镜像加速..." - - # 确保 /etc/docker 目录存在 - mkdir -p /etc/docker - - if [ ! -f "$daemon_json" ]; then - # 文件不存在,直接创建 - info "创建新的 daemon.json..." - cat > "$daemon_json" << EOF -{ - "registry-mirrors": ["$registry_mirror"] -} -EOF +# 获取加速后的 Docker 镜像地址 +# 用法: get_accelerated_image "yyhuni/xingrin-worker:v1.0.0" +# 返回: xget.xi-xu.me/cr/docker/yyhuni/xingrin-worker:v1.0.0(如果启用加速) +# 或原始镜像地址(如果未启用加速) +get_accelerated_image() { + local image="$1" + if [ -n "$XGET_MIRROR" ]; then + # 移除末尾斜杠 + local mirror="${XGET_MIRROR%/}" + echo "${mirror}/cr/docker/${image}" else - # 文件存在,用 jq 合并配置(保留现有设置) - info "合并配置到现有 daemon.json..." - local temp_file=$(mktemp) - - # 检查是否已有 registry-mirrors - if jq -e '.["registry-mirrors"]' "$daemon_json" >/dev/null 2>&1; then - # 已有 registry-mirrors,添加新的镜像地址(如果不存在) - if ! jq -e --arg mirror "$registry_mirror" '.["registry-mirrors"] | index($mirror)' "$daemon_json" >/dev/null 2>&1; then - jq --arg mirror "$registry_mirror" '.["registry-mirrors"] = [$mirror] + .["registry-mirrors"]' "$daemon_json" > "$temp_file" - mv "$temp_file" "$daemon_json" - else - info "镜像地址已存在于配置中,跳过添加" - rm -f "$temp_file" - fi - else - # 没有 registry-mirrors,添加新的 - jq --arg mirror "$registry_mirror" '. + {"registry-mirrors": [$mirror]}' "$daemon_json" > "$temp_file" - mv "$temp_file" "$daemon_json" - fi - fi - - # 重启 Docker 使配置生效 - info "重启 Docker 服务以应用配置..." - if systemctl restart docker; then - success "Docker 镜像加速配置完成: $registry_mirror" - else - warn "Docker 服务重启失败,请手动重启 Docker" + echo "$image" fi } @@ -368,11 +333,6 @@ else usermod -aG docker "$REAL_USER" fi -# 配置 Docker 镜像加速(仅当 XGET_MIRROR 非空时) -if [ -n "$XGET_MIRROR" ]; then - configure_docker_mirror "$XGET_MIRROR" -fi - # 检查 docker compose if docker compose version >/dev/null 2>&1; then success "已安装: docker compose" @@ -585,14 +545,23 @@ if [ "$DEV_MODE" = true ]; then fi else info "正在拉取: $WORKER_IMAGE" + + # 获取加速后的镜像地址 + PULL_IMAGE=$(get_accelerated_image "$WORKER_IMAGE") + # 显示加速状态提示 if [ -n "$XGET_MIRROR" ]; then - info "使用 Xget 加速拉取镜像(通过 registry-mirror)" - else - info "使用默认方式拉取镜像(未启用加速)" + info "使用 Xget 加速拉取: $PULL_IMAGE" fi - if docker pull "$WORKER_IMAGE"; then + if docker pull "$PULL_IMAGE"; then + # 如果使用了加速,需要重新打标签为原始镜像名 + if [ "$PULL_IMAGE" != "$WORKER_IMAGE" ]; then + docker tag "$PULL_IMAGE" "$WORKER_IMAGE" + # 删除加速镜像标签(可选,保持镜像列表整洁) + docker rmi "$PULL_IMAGE" 2>/dev/null || true + fi + if [ -n "$XGET_MIRROR" ]; then success "Worker 镜像拉取完成(通过 Xget 加速)" else