Difference between revisions of "Work-Adventure/install/Add docker-compose as systemd unit"
(→Docker compose as a systemd unit) |
m (→Docker compose as a systemd unit: typo corr) |
||
Line 45: | Line 45: | ||
systemctl enable docker-compose@traefik-infra | systemctl enable docker-compose@traefik-infra | ||
systemctl enable docker-compose@workadventure | systemctl enable docker-compose@workadventure | ||
− | + | systemctl daemon-reload | |
</pre> | </pre> |
Revision as of 03:08, 20 March 2021
Docker compose as a systemd unit
SystemD calling binaries using an absolute path. In my case is prefixed by /usr/bin
, you should use paths specific for your environment.
Create a general /etc/systemd/system/docker-compose@.service
:
[Unit] Description=%i service with docker compose Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=true # for each of your services # place your .env and docker-compose.yaml files in a subdirectory of the WorkingDirectory WorkingDirectory=/opt/%i ExecStart=/usr/bin/docker-compose up -d --remove-orphans ExecStop=/usr/bin/docker-compose down [Install] WantedBy=multi-user.target
Place the docker-compose.yaml
and .env
files of any of your services (traefik-infra, workadventure ...) in a subdirectory of /opt
(example /opt/workadventure
) and call
systemctl start docker-compose@yourservice
Example:
For /opt/traefik-infra
and /opt/workadventure
run
systemctl start docker-compose@traefik-infra systemctl start docker-compose@workadventure
To have them started automatically after system boot, run once
systemctl enable docker-compose@traefik-infra systemctl enable docker-compose@workadventure systemctl daemon-reload