commit 35d1ece7c73e8a4be209571fb55c6f66580e93d6 Author: S.Gromov Date: Thu Oct 23 05:09:33 2025 +0300 Начальная конфигурация Gitea Server Runner diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..624954e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +server/data/* +runners/gitea-runner-*/ +.env +data/* \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8c59d09 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Gitea Server Runner + +Docker-контейнер для запуска CI/CD раннера Gitea Actions. + +## Настройка + +1. Скопируйте `env.example` в `.env` +2. Заполните переменные в `.env`: + - `GITEA_RUNNER_REGISTRATION_TOKEN` - токен из админ-панели Gitea + - `GITEA_INSTANCE_URL` - URL вашего Gitea сервера + - `GITEA_RUNNER_NAME` - уникальное имя раннера + +## Запуск + +```bash +docker-compose up -d +``` + +Раннер автоматически зарегистрируется в Gitea при первом запуске. + +## actions/cache в Docker ранере +Для работы actions/cache требуется настроить config.yaml согласно документации. +https://docs.gitea.com/usage/actions/act-runner#advanced-configurations + +host: - должна быть локальная сеть (пример: 192.168.0.35 ip текущего сервера). 127.0.0.1 не прокатит так-как у каждого контейнера свой изолированный 127.0.0.1. \ No newline at end of file diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..1a5cc27 --- /dev/null +++ b/config.yaml @@ -0,0 +1,32 @@ +log: + level: info + +runner: + file: .runner + capacity: 10 + envs: {} + env_file: .env + timeout: 3h + insecure: false + fetch_timeout: 5s + fetch_interval: 2s + labels: [] + +cache: + enabled: true + dir: "" + host: "192.168.1.37" + port: 8088 + external_server: "" + +container: + network: "" + privileged: false + options: "" + workdir_parent: "" + valid_volumes: [] + docker_host: "" + force_pull: false + +host: + workdir_parent: "" diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..c772d1c --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,20 @@ +volumes: + shared-tool-cache: + +services: + gitea-runner: + container_name: gitea-runner + restart: always + image: gitea/act_runner:latest + environment: + - GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN} + - GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL} + - GITEA_RUNNER_NAME=${GITEA_RUNNER_NAME} + - CONFIG_FILE=/config_data/config.yaml + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./data:/data + - ./config.yaml:/config_data/config.yaml:ro + - shared-tool-cache:/opt/hostedtoolcache + ports: + - "8088:8088" \ No newline at end of file diff --git a/env.example b/env.example new file mode 100644 index 0000000..e30a2cc --- /dev/null +++ b/env.example @@ -0,0 +1,18 @@ +# Переменные окружения для Gitea Runner + +# Токен для регистрации runner'а в Gitea +# Получается в админ-панели Gitea: Settings -> Actions -> Runners -> Create new runner +# Этот токен уникален для каждого runner'а и используется только один раз при регистрации +GITEA_RUNNER_REGISTRATION_TOKEN=your_registration_token_here + +# URL адрес экземпляра Gitea +# Должен быть доступен из контейнера runner'а +# Примеры: +# - http://gitea (если используется Docker network) +# - http://localhost:3000 (для локальной разработки) +# - https://git.example.com (для внешнего сервера) +GITEA_INSTANCE_URL=http://your_gitea_instance_url + +# Имя runner'а для идентификации в Gitea +# Должно быть уникальным для каждого runner'а +GITEA_RUNNER_NAME=your_runner_name_here