जब हम उपयोग करते हैं crontabया पदावनत /etc/rc.localफाइल करते हैं, तो हमें sleep 10यह सुनिश्चित करने के लिए एक देरी की आवश्यकता होती है (जैसे , मशीन पर निर्भर करता है) कि सिस्टम सेवाएं उपलब्ध हैं। आमतौर पर, systemd(या upstart) का इस्तेमाल यह देखने के लिए किया जाता है कि सिस्टम बूट होने पर कौन सी सेवाएं शुरू करता है। आप इसके लिए समान कॉन्फ़िगरेशन का उपयोग करने का प्रयास कर सकते हैं:
# /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
या, यदि आप -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अपने dockerized प्रोजेक्ट पथ के साथ पैरामीटर बदलें । और स्वचालित रूप से शुरू करने के लिए सेवा को सक्षम करें:
systemctl enable docker-compose-app
--restart alwaysया--restart unless-stoppedया docker-compose.yml उपयोग मेंrestart: always-> रेफरी । लेकिन शायद कुछ कंटेनरों पर काम नहीं किया!