Untuk membiarkan wadah autostart pada saat startup titik, saya mencoba untuk menambahkan perintah:
cd directory_has_docker-menulis.yml && docker-menulis-up -d
di /etc/rc.lokal.
tapi kemudian setelah saya reboot mesin, wadah tidak bekerja.
Bagaimana menjalankan docker-menulis-up -d
saat sistem start up?
Ketika kita menggunakan crontab
atau usang /etc/rc.lokal
file, kita perlu menunda (misalnya tidur 10
, tergantung pada mesin) untuk memastikan bahwa sistem pelayanan yang tersedia. Biasanya, common
(atau pemula
) digunakan untuk mengelola layanan yang mulai ketika sistem boot. Anda dapat mencoba menggunakan konfigurasi yang sama untuk ini:
# /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
Atau, jika anda ingin berjalan tanpa -d
bendera:
# /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
Mengubah WorkingDirectory
parameter dengan anda dockerized proyek jalan. Dan memungkinkan untuk memulai secara otomatis:
systemctl enable docker-compose-app
Jika anda docker.layanan
diaktifkan pada sistem startup
$ sudo systemctl enable docker
dan jasa anda di docker-menulis.yml
telah
restart: always
semua layanan yang berjalan ketika anda reboot sistem anda jika anda menjalankan perintah di bawah ini hanya sekali
docker-compose up -d
Aku mencoba restart: selalu
, ia bekerja di beberapa wadah(seperti php-fpm), tapi saya dihadapkan dengan masalah bahwa beberapa wadah(seperti nginx) masih tidak restart setelah reboot.
Memecahkan masalah.
crontab -e
@reboot (sleep 30s ; cd directory_has_dockercomposeyml ; /usr/local/bin/docker-compose up -d )&
Menggunakan restart: selalu di docker menulis file.
Docker-menulis-up -d
akan meluncurkan wadah dari gambar lagi. Gunakan docker-menulis start
untuk mulai berhenti wadah, itu pernah meluncurkan new wadah dari gambar.
nginx:
restart: always
image: nginx
ports:
- "80:80"
- "443:443" links:
- other_container:other_container
Anda juga dapat menulis kode di docker file sehingga akan dibuat terlebih dahulu, jika memiliki ketergantungan wadah lainnya.