Как запустить Concourse в Docker я уже писал в заметке «Установка и начало работы с Concourse CI«, но использовать докер совершенно не обязательно и можно запустить любой из компонентов как сервис SystemD.
Создаем каталог для запуска Concourse worker и загружаем бинарные файлы
Так как Concourse написан на GO то большинство зависимостей входит в единый бинарный файл и нам достаточно загрузить файлы из GitHub по адресу https://github.com/concourse/concourse/releases.

Распаковываем архив в каталог /opt/concourse-worker и создаем файл с переменными окружения для запуска воркера.
Так же создаем файл для хранения рабочих файлов.
# mkdir /opt/concourse-worker/data
Файл с переменными окружения для запуска воркера /opt/concourse-worker/worker.env.
CONCOURSE_TSA_HOST=10.88.14.12:2222
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse-docker/keys/worker/tsa_host_key.pub
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse-docker/keys/worker/worker_key
CONCOURSE_WORK_DIR=/opt/concourse-worker/data
CONCOURSE_CONTAINERD_DNS_PROXY_ENABLE=true
CONCOURSE_CONTAINERD_DNS_SERVER=8.8.8.8
Создаем сервис SystemD для запуска Concourse
Файл сервиса для запуска Concourse /etc/systemd/system/concourse-worker.service.
[Unit]
Description=Concourse Worker
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/concourse-worker/bin
EnvironmentFile=/opt/concourse-worker/worker.env
ExecStart=/opt/concourse-worker/bin/concourse worker --containerd-dns-proxy-enable --containerd-dns-server=8.8.8.8
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Проводим тестовый запуск и проверям статус.
# systemctl daemon-reload
# systemctl start concourse-worker.service
Если сервис запустился удачно, то добавляем его в автозагрузку.
# systemctl enable concourse-worker.service
Проверьте, что воркер работает и для этого можно использовать пример с Hello World из прошлой статьи.




