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

View File

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

View File

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