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 |