更新 .github/workflows/buidl_and_push_ghcr.yml
Some checks failed
Docker Image CI / build (push) Failing after 19s
Some checks failed
Docker Image CI / build (push) Failing after 19s
This commit is contained in:
35
.github/workflows/buidl_and_push_ghcr.yml
vendored
35
.github/workflows/buidl_and_push_ghcr.yml
vendored
@@ -8,39 +8,44 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# 注意:Gitea 的 runner 标签需要在 runner 配置文件中定义
|
||||
# 如果你的 runner 标签不是 ubuntu-latest,请修改这里 (例如: linux, host 等)
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# 🌟 关键点 1: 启动一个 Docker 守护进程容器 (DinD)
|
||||
services:
|
||||
docker:
|
||||
image: docker:dind
|
||||
options: --privileged
|
||||
ports:
|
||||
- 2376:2376
|
||||
|
||||
# 🌟 关键点 2: 告诉所有步骤通过 TCP 连接 Docker,而不是 Socket
|
||||
env:
|
||||
DOCKER_HOST: tcp://docker:2376
|
||||
DOCKER_TLS_VERIFY: 1
|
||||
DOCKER_CERT_PATH: /certs/client
|
||||
DOCKER_TLS_CERTDIR: /certs
|
||||
|
||||
steps:
|
||||
# 1. 检出代码
|
||||
# Gitea 会自动从 https://github.com/actions/checkout 镜像或重定向
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# 2. 设置 Docker Buildx
|
||||
# 🌟 关键点 3: 配置 Buildx 使用上面定义的 docker 容器驱动
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
driver: docker-container
|
||||
endpoint: tcp://docker:2376
|
||||
|
||||
# 3. 登录 Gitea 容器镜像仓库
|
||||
- name: Log in to Gitea Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
# 填写你的 Gitea 域名 (不带 http/https),例如 gitea.example.com
|
||||
# 如果配置了 defaults,也可以留空,但显式指定更安全
|
||||
registry: ${{ gitea.server_url }}
|
||||
registry: ${{ gitea.server_url }}
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.GITEA_TOKEN }}
|
||||
|
||||
# 4. 构建并推送 Docker 镜像
|
||||
- name: Build and push Docker image
|
||||
run: |
|
||||
# 这里的 gitea.server_url 包含协议头(http/s),docker tag 需要去掉协议头
|
||||
# 下面这行命令提取域名,例如: https://gitea.com -> gitea.com
|
||||
DOMAIN=$(echo "${{ gitea.server_url }}" | sed -e 's|^[^/]*//||' -e 's|/.*$||')
|
||||
|
||||
# 组合镜像名: 域名/用户名/仓库名 (自动转小写)
|
||||
# 注意:Docker 镜像名必须全小写
|
||||
REPO_LOWER=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]')
|
||||
IMAGE_NAME="$DOMAIN/$REPO_LOWER"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user