feat: 改用 Docker 模式运行 Gitea Actions
Some checks failed
Deploy BillAI / Deploy to Production (push) Failing after 26s

This commit is contained in:
CHE LIANG ZHAO
2026-01-26 18:30:28 +08:00
parent b7399d185f
commit a5f1a370c7
3 changed files with 22 additions and 15 deletions

View File

@@ -1,5 +1,6 @@
# BillAI 自动部署工作流
# 当 master 分支有 push 时自动触发部署
# 模式: Docker 模式 - Job 在 docker:latest 容器中执行
name: Deploy BillAI
@@ -12,6 +13,11 @@ jobs:
deploy:
name: Deploy to Production
runs-on: self-hosted
container:
image: docker:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${{ vars.DEPLOY_PATH }}:${{ vars.DEPLOY_PATH }}
steps:
- name: Checkout code
run: |

View File

@@ -13,7 +13,11 @@
#
# 4. 在 Gitea 仓库添加变量
# 访问https://git.fadinglight.cn/clz/billai/settings/actions/variables
# 添加 DEPLOY_PATH = /你的项目路径
# 添加 DEPLOY_PATH = /workspace/billai
#
# 模式说明:
# 使用 Docker 模式,每个 Job 会在 docker:latest 容器中执行
# 容器自带 docker CLI通过挂载 docker.sock 控制宿主机的 Docker
services:
runner:
@@ -25,18 +29,14 @@ services:
environment:
GITEA_INSTANCE_URL: "https://git.fadinglight.cn"
GITEA_RUNNER_NAME: "billai-runner"
GITEA_RUNNER_LABELS: "self-hosted:host,ubuntu-latest:host"
GITEA_RUNNER_LABELS: "self-hosted:docker://docker:latest,ubuntu-latest:docker://docker:latest"
CONFIG_FILE: /config.yaml
volumes:
# Runner 配置文件
- ./runner/config.yaml:/config.yaml
# Runner 数据持久化
- ./runner/data:/data
# Docker socket - 用于在宿主机执行 docker 命令
# Docker socket - Runner 通过它创建 Job 容器
- /var/run/docker.sock:/var/run/docker.sock
# Docker 客户端 - 让容器内可以执行 docker 命令
- /usr/bin/docker:/usr/bin/docker
# Docker CLI 插件目录(包含 docker compose 插件)
- /usr/libexec/docker/cli-plugins:/usr/libexec/docker/cli-plugins
# 项目目录 - 用于执行部署脚本
# 项目目录 - 挂载到 Runner 和 Job 容器都能访问的路径
- .:/workspace/billai

View File

@@ -1,5 +1,6 @@
# Gitea Actions Runner 配置
# 文档: https://docs.gitea.com/usage/actions/act-runner
# 模式: Docker 模式 - Job 在独立的 Docker 容器中执行
log:
# 日志级别: debug, info, warn, error
@@ -21,23 +22,23 @@ runner:
# 任务容器拉取策略: always, if-not-present, never
fetch_timeout: 5s
fetch_interval: 2s
# Runner 标签
# Runner 标签 - 使用 Docker 模式docker:latest 镜像自带 docker CLI
labels:
- "ubuntu-latest:host"
- "self-hosted:host"
- "ubuntu-latest:docker://docker:latest"
- "self-hosted:docker://docker:latest"
container:
# 容器网络模式
network: "host"
# 是否启用特权模式
privileged: false
# 容器选项
options:
# 容器启动选项 - 挂载 docker.sock 和项目目录
options: "-v /var/run/docker.sock:/var/run/docker.sock"
# 工作目录父路径
workdir_parent:
# 有效的卷挂载
# 有效的卷挂载 - 允许挂载的目录
valid_volumes:
- /workspace/**
- /**
# Docker 主机
docker_host: ""
# 强制拉取镜像