Files
rf4-spotter/deploy/gitea-runner.compose.README.md
T

88 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gitea + Actions runner
Этот compose сохраняет существующие данные Gitea в `/srv/gitea` и хранит
регистрацию runner отдельно в `/srv/gitea-runner`. Он рассчитан на перенос
существующего контейнера, созданного через `docker run`.
## Подготовка
На сервере, где работает Gitea, проверьте сеть и контейнер:
```bash
docker network inspect kycb_internal >/dev/null
docker inspect gitea --format '{{json .Mounts}}'
docker inspect gitea --format '{{json .Config.Env}}'
```
В каталоге рядом с compose создайте `.env` с правами `600`:
```dotenv
TZ=Asia/Krasnoyarsk
GITEA_DATA_DIRECTORY=/srv/gitea
GITEA_RUNNER_DATA_DIRECTORY=/srv/gitea-runner
# Для runner внутри той же Docker-сети:
GITEA_INSTANCE_URL=http://gitea:3000/
GITEA_RUNNER_NAME=rf4-runner-01
GITEA_RUNNER_LABELS=ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest
GITEA_RUNNER_REGISTRATION_TOKEN=вставьте_одноразовый_токен_из_Gitea
```
Токен создаётся в `Repository → Settings → Actions → Runners → Create new
runner`. Он не должен попадать в Git, shell history или compose-файл.
## Переключение без потери данных
Сначала остановите старый контейнер, но не удаляйте каталог данных:
```bash
docker stop gitea
docker rename gitea gitea-before-compose
sudo install -d -m 700 /srv/gitea-runner
sudo chmod 600 .env
```
Запустите compose из каталога, где лежат `.env` и
`gitea-runner.compose.yaml`:
```bash
docker compose -f gitea-runner.compose.yaml config
docker compose -f gitea-runner.compose.yaml up -d
docker compose -f gitea-runner.compose.yaml ps
docker compose -f gitea-runner.compose.yaml logs -f runner
```
После запуска в Gitea runner должен иметь состояние `Idle`/`Online`. Проверка
файлов регистрации:
```bash
sudo find /srv/gitea-runner -maxdepth 2 -type f -print
```
Старый контейнер оставьте остановленным до проверки web UI, SSH и Actions. Если
нужно вернуться назад:
```bash
docker compose -f gitea-runner.compose.yaml down
docker rename gitea-before-compose gitea
docker start gitea
```
Команда `down` удаляет только контейнеры compose, а `/srv/gitea` и
`/srv/gitea-runner` не удаляет.
## Важные условия
`GITEA_INSTANCE_URL` должен быть доступен из контейнера runner. Если Gitea
работает за reverse proxy и внутренний адрес `http://gitea:3000/` не подходит,
укажите внешний `ROOT_URL`, доступный с этого сервера.
Runner получает доступ к `/var/run/docker.sock`, потому что workflow проекта
запускает Docker Compose, PostgreSQL service и Playwright. Такой runner должен
исполнять только доверенный код: доступ к socket фактически даёт заданиям
административный доступ к Docker-хосту.
Если runner уже регистрировался с другим label, удалите старую регистрацию в
Gitea и используйте новый каталог `/srv/gitea-runner`; файл регистрации внутри
`/data` вручную не редактируйте.