diff --git a/.github/workflows/buidl_and_push_ghcr.yml b/.github/workflows/buidl_and_push_ghcr.yml index 9b5db7b..b78be37 100644 --- a/.github/workflows/buidl_and_push_ghcr.yml +++ b/.github/workflows/buidl_and_push_ghcr.yml @@ -35,17 +35,17 @@ jobs: # 打印一下,方便调试 echo "Will build: $REGISTRY_HOST/$REPO_LOWER:$SHA_SHORT" - # 2. 登录步骤 (Login Action 通常没问题,它只写配置文件) - - name: Log in to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ steps.meta.outputs.REGISTRY_HOST }} - username: ${{ gitea.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + # 替换掉原有的 docker login 步骤 + - name: Log in to Gitea Registry (Buildah) + run: | + # --tls-verify=false 允许 HTTP 登录 + buildah login --tls-verify=false \ + -u ${{ gitea.actor }} \ + -p ${{ secrets.GITHUB_TOKEN }} \ + ${{ steps.meta.outputs.REGISTRY_HOST }} - # 3. 【核心修改】使用原生 Shell 命令替代 setup-buildx 和 build-push-action - # 这样直接使用 runner 宿主机的 docker 客户端,绕过 JS 库的连接 bug - - name: Build and Push (Native) + # 替换掉原有的 docker build/push 步骤 + - name: Build and Push with Buildah env: REGISTRY: ${{ steps.meta.outputs.REGISTRY_HOST }} IMAGE: ${{ steps.meta.outputs.IMAGE_NAME }} @@ -56,12 +56,15 @@ jobs: echo "Building $FULL_IMAGE_NAME..." - # 直接使用 docker build - docker build . \ - --file Dockerfile \ - --tag "$FULL_IMAGE_NAME:$TAG_LATEST" \ - --tag "$FULL_IMAGE_NAME:$TAG_SHA" + # 使用 buildah bud (build-using-dockerfile) + buildah bud \ + --format docker \ + -f Dockerfile \ + -t "$FULL_IMAGE_NAME:$TAG_LATEST" \ + -t "$FULL_IMAGE_NAME:$TAG_SHA" \ + . echo "Pushing images..." - docker push "$FULL_IMAGE_NAME:$TAG_LATEST" - docker push "$FULL_IMAGE_NAME:$TAG_SHA" \ No newline at end of file + # 关键参数:--tls-verify=false 允许推送到 HTTP 仓库 + buildah push --tls-verify=false "$FULL_IMAGE_NAME:$TAG_LATEST" + buildah push --tls-verify=false "$FULL_IMAGE_NAME:$TAG_SHA" \ No newline at end of file