Files
grm/ansible/roles/gitea-runner/templates/gitea-runner@.service.j2
T
Emil Simeonov e5964ca5a9 GRM-14: feat: add systemd template units and multi-instance Ansible support
- Add instance-scoped base data/config directories in defaults
- Create gitea-runner@.service.j2 template supporting Docker and binary modes
- Refactor service.yml to install systemd template unit instances
- Remove direct container lifecycle from docker_mode.yml (delegate to systemd)
- Add deregister.yml for runner deregistration on disable/remove
- Create lifecycle playbooks: start, stop, enable, disable, status, remove
- Update handlers, integration_test, docker_update, binary_update for template units
2026-06-18 22:59:04 +02:00

34 lines
1.2 KiB
Django/Jinja

[Unit]
Description=Gitea Actions Runner %i ({% if runner_mode == 'docker' %}docker{% else %}binary{% endif %})
After=network.target{% if runner_mode == 'docker' %} docker.service
Requires=docker.service{% endif %}
[Service]
Type=simple
{% if runner_mode == 'docker' %}
ExecStartPre=-/usr/bin/docker rm -f gitea-runner-%i
ExecStart=/usr/bin/docker run -d --name gitea-runner-%i \
--restart=no \
-v /var/run/docker.sock:/var/run/docker.sock \
-v {{ gitea_runner_base_data_dir }}/%i:/data \
-w /data \
{{ gitea_runner_docker_image }}:{{ gitea_runner_version | regex_replace('^v', '') }} \
daemon --config /data/config.yaml
ExecStop=/usr/bin/docker stop -t 30 gitea-runner-%i
ExecStopPost=-/usr/bin/docker rm -f gitea-runner-%i
Restart=on-failure
RestartSec={{ gitea_runner_service_restart_sec }}
{% else %}
ExecStart={{ gitea_runner_binary_path }} daemon --config {{ gitea_runner_base_config_dir }}/%i/config.yaml
WorkingDirectory={{ gitea_runner_base_data_dir }}/%i
ExecStop=/bin/kill -TERM $MAINPID
TimeoutStopSec=30
Restart=on-failure
RestartSec={{ gitea_runner_service_restart_sec }}
User={{ gitea_runner_service_user }}
Group=docker
{% endif %}
[Install]
WantedBy=multi-user.target