Files
my-docs/.github/workflows/buidl_and_push_ghcr.yml
gitea_admin 84b3aca8a6
Some checks failed
Docker Image CI / build (push) Failing after 1m43s
更新 .github/workflows/buidl_and_push_ghcr.yml
2025-12-18 05:17:58 +00:00

69 lines
2.4 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 # 确保你的 Gitea Runner 注册了这个标签
# 【关键配置】在 K8s 中使用 DinD 的标准方式
# 如果你的 runner 已经配置了挂载宿主机 docker sock可以去掉 services 部分
# 但对于纯 DinD 模式,建议保留以下配置
services:
docker:
image: docker:dind
options: --privileged
ports:
- 2375:2375
# Gitea Actions 默认容器可能没有 git 或 docker 客户端
# 指定一个包含常用工具的容器镜像作为执行环境
container:
image: catthehacker/ubuntu:act-latest
# 告诉容器 Docker 守护进程在哪里 (对应上面的 service)
env:
DOCKER_HOST: tcp://docker:2375
steps:
- name: Checkout code
uses: actions/checkout@v4
# 设置 Docker Buildx (兼容性最好)
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
# 显式指定 endpoint防止找不到 docker 进程
driver-opts: image=moby/buildkit:master
endpoint: tcp://docker:2375
# 登录 Gitea 内置的容器镜像仓库
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ gitea.server_url }} # 自动获取你的 Gitea 地址 (带协议)
# 注意login action通常只需要域名如果 server_url 带 http/https 可能需要处理
# 建议直接写域名,或者使用下面的这种方式:
# registry: git.yourdomain.com
username: ${{ gitea.actor }}
password: ${{ secrets.GITEA_TOKEN }}
# 构建并推送
# 建议使用官方 Action 替代 shell 脚本,因为它能自动处理 Buildx 上下文
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
# 自动生成 tag
tags: |
${{ gitea.server_url }}/${{ gitea.actor }}/my-docs:latest
${{ gitea.server_url }}/${{ gitea.actor }}/my-docs:${{ gitea.sha }}
# 如果上面 server_url 带了 http:// 前缀导致报错,请手动写死域名,例如:
# tags: |
# git.example.com/zeroornull/my-docs:latest