💭

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

2023/09/19に公開

結論から

こんな感じの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"

これだけ指定した。

この記事は https://note.nazo6.dev/blog/docker-compose-gitea-setup とのクロスポストです。

GitHubで編集を提案

Discussion