Files
my-docs/.github/workflows/buidl_and_push_ghcr.yml
gitea_admin 93a4c35677
Some checks failed
Docker Image CI / build (push) Failing after 19s
更新 .github/workflows/buidl_and_push_ghcr.yml
2025-12-18 05:12:16 +00:00

59 lines
1.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Docker Image CI
on:
workflow_dispatch:
push:
branches:
- main
jobs:
build:
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:
- name: Checkout code
uses: actions/checkout@v4
# 🌟 关键点 3: 配置 Buildx 使用上面定义的 docker 容器驱动
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
endpoint: tcp://docker:2376
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ gitea.server_url }}
username: ${{ gitea.actor }}
password: ${{ secrets.GITEA_TOKEN }}
- name: Build and push Docker image
run: |
DOMAIN=$(echo "${{ gitea.server_url }}" | sed -e 's|^[^/]*//||' -e 's|/.*$||')
REPO_LOWER=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]')
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 }}"