黄中银 3 недель назад
Родитель
Сommit
aa1c615724
1 измененных файлов с 28 добавлено и 2 удалено
  1. 28 2
      cognio/buildDockerImage_u24_docker.ps1

+ 28 - 2
cognio/buildDockerImage_u24_docker.ps1

@@ -20,9 +20,9 @@ $imageName = "amwpfiqvy/cognio"
 
 # Docker 镜像加速源(随机选择一个,不带 https:// 前缀)
 $dockerMirrors = @(
+    "docker.m.daocloud.io"
     "docker.1panel.live"
     "hub.rat.dev"
-    "docker.m.daocloud.io"
 )
 $dockerMirror = $dockerMirrors | Get-Random
 
@@ -110,10 +110,33 @@ sed -i '/^FROM/a ENV PIP_ONLY_BINARY=:all:' Dockerfile
 echo "设置代理环境变量(用于推送镜像)..."
 export HTTP_PROXY=$buildProxy
 export HTTPS_PROXY=$buildProxy
+echo "配置 Docker daemon 代理(用于 buildx 推送)..."
+sudo mkdir -p /etc/systemd/system/docker.service.d
+cat << PROXYEOF | sudo tee /etc/systemd/system/docker.service.d/proxy.conf > /dev/null
+[Service]
+Environment="HTTP_PROXY=$buildProxy"
+Environment="HTTPS_PROXY=$buildProxy"
+Environment="NO_PROXY=localhost,127.0.0.1,mirrors.aliyun.com"
+PROXYEOF
+sudo systemctl daemon-reload
+sudo systemctl restart docker
+sleep 3
+echo "临时禁用 IPv6(避免推送超时)..."
+sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
+sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
+echo "创建带代理的 buildx builder..."
+docker buildx rm mybuilder 2>/dev/null || true
+docker buildx create --name mybuilder --driver docker-container \
+    --driver-opt env.HTTP_PROXY=$buildProxy \
+    --driver-opt env.HTTPS_PROXY=$buildProxy \
+    --use
+docker buildx inspect mybuilder --bootstrap
+echo "验证 builder 状态..."
+docker buildx ls
 echo "正在构建并推送 Docker 镜像..."
 echo "使用镜像加速: $dockerMirror"
 echo "使用代理: $buildProxy"
-docker buildx build \
+docker buildx build --builder mybuilder \
     --platform linux/amd64,linux/arm64 \
     --build-arg DOCKER_MIRROR=$dockerMirror \
     --build-arg HTTP_PROXY=$buildProxy \
@@ -123,6 +146,9 @@ docker buildx build \
     --cache-to type=local,dest=`$HOME/.buildx-cache,mode=max \
     --push \
     .
+echo "恢复 IPv6..."
+sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
+sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
 "@
 
 # 将脚本内容转为 base64,避免特殊字符问题