gitea actions
暂不考虑
yml
services:
gitea-db:
image: postgres:17-alpine
container_name: gitea-db
restart: unless-stopped
environment:
POSTGRES_DB: gitea
POSTGRES_USER: gitea
POSTGRES_PASSWORD: sql123123
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- gitea
gitea:
image: docker.gitea.com/gitea:1.26-rootless
container_name: gitea
restart: unless-stopped
depends_on:
- gitea-db
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: gitea-db:5432
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: sql123123
GITEA__server__DOMAIN: git.local.q123q.cc
GITEA__server__ROOT_URL: http://git.local.q123q.cc/
GITEA__server__SSH_DOMAIN: git.local.q123q.cc
GITEA__server__SSH_PORT: 2222
GITEA__server__START_SSH_SERVER: true
GITEA__actions__ENABLED: true
volumes:
- ./gitea:/var/lib/gitea
- ./gitea-config:/etc/gitea
ports:
- "2222:2222"
networks:
- gitea
- traefik
gitea-act-runner:
image: docker.io/gitea/act_runner:0.6
container_name: gitea-act-runner
restart: unless-stopped
depends_on:
- gitea
environment:
CONFIG_FILE: /config.yaml
DOCKER_NETWORK_MODE: gitea-network
GITEA_INSTANCE_URL: http://gitea:3000/
GITEA_RUNNER_REGISTRATION_TOKEN: change_me_runner_token
GITEA_RUNNER_NAME: local-runner
volumes:
- ./act-runner:/data
- ./act-runner-config.yaml:/config.yaml
- /var/run/docker.sock:/var/run/docker.sock
- /opt/frontend-dist:/deploy
networks:
- gitea
- traefik
networks:
gitea:
name: gitea-network
traefik:
external: true注意 GITEA__actions__ENABLED 是 true
gitea-act-runner 可以为 项目、组织、整体分别设置。
整体通过 “头像” -> “管理后台” 设置
act-runner-config.yaml
sh
docker exec gitea-act-runner act_runner generate-config > act-runner-config.yaml有了 config 后,GITEA_RUNNER_LABELS 将失效
修改 labels
runner:
labels:
- "node:docker://node:22-bookworm"
- "golang:docker://golang:1.24"container:
network: gitea-network
valid_volumes:
- /deploy一个 gitea actions workflows 实例
.gitea/workflows/deploy-local-server.yml
yml
name: WanxServer2本地部署
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: node
steps:
- name: Runner Debug 信息
run: |
ping -c 3 gitea || true
cat /etc/resolv.conf
env | sort
- name: clone 代码
run: |
git clone "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" .
git checkout "$GITHUB_SHA"
- name: 启用 pnpm
run: corepack enable
- name: 安装依赖
run: pnpm install --frozen-lockfile --registry https://registry.npmmirror.com
- name: 构建 dist
run: pnpm build:local
- name: 部署本地static-nginx
run: |
cd packages/main
mkdir -p /deploy/panorama
rm -rf /deploy/panorama/*
cp -r dist/. /deploy/panorama/