Gitea
配置前需要手动创建data和config文件夹不然会出现权限问题,user的id也需要根据对应的角色进行修改。rootless为非root用户模式,默认以git用户运行。
1 | services: |
对应 .env:
1 | DB_HOST=db:5432 |
docker-compose 字段说明:
| 字段 | 说明 |
|---|---|
image |
Gitea rootless 镜像,官方推荐 |
user: '1000:1000' |
以指定 UID/GID 运行,避免 root 权限(需与主机上创建 data/config 目录的用户一致) |
environment |
数据库连接参数,通过 GITEA__ 前缀注入 |
volumes |
./data 存储仓库数据,./config 存储配置文件;:ro 为只读挂载时区和时间 |
ports |
3000 为 Web UI,2222 为 SSH 克隆端口 |
restart: always |
容器异常退出后自动重启 |
runner
以 Docker-in-Docker 方式执行 CI 任务。
需要提前创建好config.yaml文件和data文件夹
docker-compose.yaml:
1 | services: |
docker-compose 字段说明:
| 字段 | 说明 |
|---|---|
image: nightly |
使用 act_runner 最新构建版本 |
volumes: /var/run/docker.sock |
挂载宿主 Docker socket,实现容器内调度 Docker(Docker-in-Docker) |
./data |
存储 Runner 注册凭证等运行时数据 |
CONFIG_FILE |
指定 Runner 实例配置文件路径 |
HTTP_PROXY / HTTPS_PROXY |
有代理环境需填入,无代理则留空 |
GITEA_RUNNER_REGISTRATION_TOKEN |
从 Gitea 管理后台获取,用于将 Runner 注册到实例 |
对应 .env:
1 | # Gitea 实例地址(确保 Runner 容器能访问) |
config.yaml(Runner 实例配置):
1 | runner: |
labels 说明
labels 决定 Runner 能处理哪些 niche 标签任务。格式为 name:docker://image。
| 标签 | 含义 |
|---|---|
hexo |
自定义名称,可按项目需求命名 |
um |
同上,示例别名 |
如需无标签 Runner,删除 labels 字段或留空。Runner 会自动注册 ubuntu 等基础标签。