/docker-compose-systemd

Скрипт для создания systemd сервиса из приложения в docker-compose

Primary LanguageShell

Примеры для создания systemd сервиса для управления docker-compose

В этом проекте собраны примеры файлов для создания сервиса из docker-compose сборки.

Файлы

Файл Назначение

/[working_dir]/docker-compose.yml

Compose файл описывает, что разворачивать

/etc/systemd/system/app_name.service

Описание сервиса для упраления docker-compose приложением

/etc/systemd/system/app_name-reload.service

Исполняемая инструкция для перезагрузки сервиса описанного в [app_name].service

/etc/systemd/system/app_name-reload.timer

Таймер для планирования перезагрузок

Установка

Автоматический скрипт установки

Скрипт install-service.sh позволяет установить сервис в автоматическом режиме, для этого нужно выполнить его со следующими параметрами:

# ./install-service.sh install [app_name] [working_dir]

где app_name - название вашего приложения, а working_dir путь к папке, в которой хранится файл конфигурации сборки docker-compose.yml

С помощью этого же скрипта можно убрать ранее установленный сервис:

# ./install-service.sh remove [app_name]
Note
Используйте с осторожностью функцию удаления, так как скрипт просто удалит файл /etc/systemd/system/app_name.service даже если сервис был установлен другим пакетом

Установка в ручном режиме

Переименуйте соответсвующие файлы и поместите их в нужные директории, после чего отредактируйте согласно текущей инсталяци. Затем нужно перезагрузить systemd:

Warning
В файле app_name.service обязательно поменяйте [working_dir] на папку, в которой находится ваше приложение и файл docker-compose.yml. Также в поле description напишите название вашего приложения
Caution
Поменяйте во всех файлах [app_name] на имя вашего приложения (сервиса)
# systemctl daemon-reload
# systemctl enable [app_name] [app_name]-reload
# systemctl start [app_name] [app_name]-reload
Tip
Обязательным является только один файл app_name.service, остальные обеспечивают регулярный перезапуск