apt install -y unattended-upgrades sshguard curl wget git ansible zip unzip tree mc lamp-server^ && apt install python-certbot-apache
Как насчет того, чтобы принять эту команду как есть и просто использовать псевдоним bash для вашей командной строки?:
Файл~/.bash_aliases
alias nginx-stop="systemctl stop docker-compose@nginx"
alias nginx-start="systemctl start docker-compose@nginx"
alias nextcloud-stop="systemctl stop docker-compose@nextcloud"
alias nextcloud-start="systemctl start docker-compose@nextcloud"
alias diaspora-stop="systemctl stop docker-compose@diaspora"
alias diaspora-start="systemctl start docker-compose@diaspora"
Следующий обходной путь не является родным для systemd -, но создает служебные файлы systemd с использованием Rakefile .
Предполагается, что ruby установлен в хост-системе.
Убедитесь, что /etc/systemd/system/docker-compose@.service
присутствует. В этом файле %i
используется как переменная для имени службы, например. "нгинкс".
Создайте Rakefile
в/var/docker-compose/
:
# /var/docker-compose/Rakefile
TEMPLATE_SERVICE_FILE = "/etc/systemd/system/docker-compose@.service"
task :systemd_units do
print "Creating systemd units:\n"
Dir.glob("/var/docker-compose/*/docker-compose.yml").each do |compose_file|
service_name = compose_file.split("/")[-2]
unit_file = "/etc/systemd/system/#{service_name}.service"
unit_file_content = File.read TEMPLATE_SERVICE_FILE
unit_file_content.gsub! "%i", service_name
File.write unit_file, unit_file_content
print "#{unit_file}\n"
end
end
Запустите rake
из каталога /var/docker-compose/
.
Это явно создаст отдельный юнит-файл для каждой службы, например. /etc/systemd/system/nginx.service
на основе файла шаблона /etc/systemd/system/docker-compose@.service
.
systemctl start nginx
работает systemctl enable nginx
работает rake
при изменении файла шаблона или добавлении/удалении сервисов из каталога компоновки docker -.