更新 .github/workflows/buidl_and_push_ghcr.yml
Some checks failed
Docker Image CI / build (push) Failing after 1m6s

This commit is contained in:
2025-12-18 05:08:27 +00:00
parent 0ffba90342
commit 961d90baa6

View File

@@ -1,44 +1,54 @@
name: Docker Image CI name: Docker Image CI
on: on:
workflow_dispatch: # 保留手动触发 workflow_dispatch:
push: # 添加 push 事件触发 push:
branches: # 指定触发分支 branches:
- main # 当推送代码到 main 分支时触发 - main
# 显式声明权限
permissions:
packages: write # 允许写入 packages
contents: read # 允许读取仓库内容
jobs: jobs:
build: build:
# 注意Gitea 的 runner 标签需要在 runner 配置文件中定义
# 如果你的 runner 标签不是 ubuntu-latest请修改这里 (例如: linux, host 等)
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code # 1. 检出代码
uses: actions/checkout@v4 # Gitea 会自动从 https://github.com/actions/checkout 镜像或重定向
- name: Checkout code
uses: actions/checkout@v4
# 设置 Docker Buildx # 2. 设置 Docker Buildx
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
# 登录 GitHub Container Registry # 3. 登录 Gitea 容器镜像仓库
- name: Log in to GitHub Container Registry - name: Log in to Gitea Container Registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ghcr.io # 填写你的 Gitea 域名 (不带 http/https),例如 gitea.example.com
username: ${{ github.actor }} # 你的用户名: zeroornull # 如果配置了 defaults也可以留空但显式指定更安全
password: ${{ secrets.GITHUB_TOKEN }} registry: ${{ gitea.server_url }}
username: ${{ gitea.actor }}
password: ${{ secrets.GITEA_TOKEN }}
# 构建并推送 Docker 镜像 # 4. 构建并推送 Docker 镜像
- name: Build and push Docker image - name: Build and push Docker image
run: | run: |
# 使用个人命名空间,镜像名改为 my-docs # 这里的 gitea.server_url 包含协议头(http/s)docker tag 需要去掉协议头
IMAGE_NAME="ghcr.io/zeroornull/my-docs" # 下面这行命令提取域名,例如: https://gitea.com -> gitea.com
echo "Pushing to: $IMAGE_NAME" DOMAIN=$(echo "${{ gitea.server_url }}" | sed -e 's|^[^/]*//||' -e 's|/.*$||')
docker build . --file Dockerfile \
--tag "$IMAGE_NAME:latest" \ # 组合镜像名: 域名/用户名/仓库名 (自动转小写)
--tag "$IMAGE_NAME:${{ github.sha }}" # 注意Docker 镜像名必须全小写
docker push "$IMAGE_NAME:latest" REPO_LOWER=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]')
docker push "$IMAGE_NAME:${{ github.sha }}" IMAGE_NAME="$DOMAIN/$REPO_LOWER"
echo "Pushing to: $IMAGE_NAME"
docker build . --file Dockerfile \
--tag "$IMAGE_NAME:latest" \
--tag "$IMAGE_NAME:${{ gitea.sha }}"
docker push "$IMAGE_NAME:latest"
docker push "$IMAGE_NAME:${{ gitea.sha }}"