Skip to content

Instantly share code, notes, and snippets.

@a3linux
Forked from mosquito/README.md
Created August 2, 2022 13:16
Show Gist options
  • Select an option

  • Save a3linux/aab791911d8e270c829f2378fb4b0dee to your computer and use it in GitHub Desktop.

Select an option

Save a3linux/aab791911d8e270c829f2378fb4b0dee to your computer and use it in GitHub Desktop.
Add doker-compose as a systemd unit
[Unit]
Description=%i service with docker compose
Requires=docker.service
After=docker.service

[Service]
Restart=always

WorkingDirectory=/etc/docker/compose/%i

# Remove old containers, images and volumes
ExecStartPre=/usr/bin/docker-compose down -v
ExecStartPre=/usr/bin/docker-compose rm -fv
ExecStartPre=-/bin/bash -c 'docker volume ls -qf "name=%i_" | xargs docker volume rm'
ExecStartPre=-/bin/bash -c 'docker network ls -qf "name=%i_" | xargs docker network rm'
ExecStartPre=-/bin/bash -c 'docker ps -aqf "name=%i_*" | xargs docker rm'

# Compose up
ExecStart=/usr/bin/docker-compose up

# Compose down, remove containers and volumes
ExecStop=/usr/bin/docker-compose down -v

[Install]
WantedBy=multi-user.target

Place you docker-compose.yml into /etc/docker/compose/myservice and call

systemctl start docker-compose@myservice
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment