更新 .github/workflows/buidl_and_push_ghcr.yml
Some checks failed
Docker Image CI / build (push) Failing after 1m6s
Some checks failed
Docker Image CI / build (push) Failing after 1m6s
This commit is contained in:
74
.github/workflows/buidl_and_push_ghcr.yml
vendored
74
.github/workflows/buidl_and_push_ghcr.yml
vendored
@@ -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 }}"
|
||||||
Reference in New Issue
Block a user