Copy files to /etc/systemd/system Run following commands:
- systemctl start docker-compose@myservice
- systemctl enable docker-cleanup.timer
[Unit] | |
Description=Docker cleanup | |
Requires=docker.service | |
After=docker.service | |
[Service] | |
Type=oneshot | |
WorkingDirectory=/tmp | |
User=root | |
Group=root | |
ExecStart=/usr/bin/docker system prune -f | |
[Install] | |
WantedBy=multi-user.target |
[Unit] | |
Description=Docker cleanup timer | |
[Timer] | |
OnUnitInactiveSec=12h | |
[Install] | |
WantedBy=timers.target |
[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 | |
# Compose down, remove containers and volumes | |
ExecStop=/usr/bin/docker-compose down -v | |
[Install] | |
WantedBy=multi-user.target |