Kullanımdan crontab
kaldırılmış /etc/rc.local
dosyayı kullandığımızda, sleep 10
sistem hizmetlerinin kullanılabilir olduğundan emin olmak için bir gecikmeye (örneğin , makineye bağlı olarak) ihtiyacımız var. Genellikle systemd
(veya upstart
), sistem önyüklendiğinde hangi hizmetlerin başlayacağını yönetmek için kullanılır. Bunun için benzer yapılandırmayı deneyebilirsiniz:
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
Veya bayraksız koşmak istiyorsanız -d
:
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
Restart=on-failure
StartLimitIntervalSec=60
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
WorkingDirectory
Parametreyi dockerize proje yolunuzla değiştirin . Ve hizmetin otomatik olarak başlamasını sağlayın:
systemctl enable docker-compose-app
--restart always
veya--restart unless-stopped
veya liman işçisi-compose.yml kullanımdarestart: always
-> Ref . Ama belki bazı kaplarda çalışmadı!