nazo6 noteblog

docker-composeでGitea + Gitea Actionsのセットアップ

作成:2023/07/02

更新:2023/07/02

この記事は、Zennにも投稿しています。

結論から

こんな感じのdocker-compose.ymlで良い
docker-compose.yaml
version: "3"

services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1026
- USER_GID=100
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME={{name}}
- GITEA__database__USER={{user}}
- GITEA__database__PASSWD={{pass}}
restart: always
volumes:
- ./gitea:/data
ports:
- "3300:3000"
- "222:22"
depends_on:
- db
networks:
- default

db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER={{user}}
- POSTGRES_PASSWORD={{pass}}
- POSTGRES_DB={{name}}
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- default

runner:
image: gitea/act_runner
restart: always
volumes:
- ./runner_data:/data
- /var/run/docker.sock:/var/run/docker.sock
- ./config.yaml:/config.yaml
environment:
- GITEA_INSTANCE_URL={{gitea_url}}
- GITEA_RUNNER_REGISTRATION_TOKEN={{token}} # 下の注意点を参照
- CONFIG_FILE=/config.yaml
- DOCKER_HOST=unix:///var/run/docker.sock
network_mode: host

これで
docker-compose up -d
すればよい。

注意点

Giteaの設定

上のコンテナを作成した際にできる./gitea/gitea/conf/app.iniを弄る。
以下が弄るべきだと思われる値
app.ini
[server]
ROOT_URL={{giteaのurl}}

[packages]
ENABLED=true # お好みで

[actions]
ENABLED=true # Actionsに必要

Gitea Actions(act_runner)の設定

ドキュメントらしいドキュメントが見つからなかったが一応Giteaのact_runnerのリポジトリにそれらしいことが書いてある。
まず、設定を生成する。act_runnerコンテナの中で
./act_runner generate-config > config.yaml
を実行。このconfig.yamlをdocker-composeに指定する。
この設定はそんなに弄る必要は無いが、自分はVPNを繋いだときだけDockerの中から特定のサイトにアクセスできない!の影響で
config.yaml
container:
network: "host"
これだけ指定した。