Bagaimana untuk Menjalankan Perintah Sekali dalam Docker Compose untuk Proses Bergantung kepada Data?

Susan Sarandon
Lepaskan: 2024-11-10 01:19:02
asal
282 orang telah melayarinya

How to Run a Command Once in Docker Compose for Data-Dependent Processes?

Menjalankan Perintah Sekali dalam Docker Compose

Pengenalan

Docker compose membolehkan anda mengurus berbilang bekas sebagai satu unit. Walau bagaimanapun, adalah sukar untuk melaksanakan perintah sekali sahaja, terutamanya apabila berurusan dengan proses yang bergantung kepada data seperti menyediakan pangkalan data.

Memahami Bekas Isipadu Data

Dalam fail karang anda, anda telah mencipta bekas volum data "mongodata" untuk menyimpan data MongoDB. Bekas ini pada asasnya ialah bekas yang dijeda yang hanya melekapkan kelantangan yang ditetapkan.

Mengelakkan Pelaksanaan Perintah Berulang

Skrip Entrypoint untuk Permulaan Satu Masa:

Untuk mengelakkan arahan "-setup" daripada melaksanakan beberapa kali, anda boleh menggunakan skrip titik masuk dalam bekas "projek_saya". Skrip ini akan menyemak sama ada pangkalan data telah dimulakan dan melakukan persediaan hanya jika perlu.

Contoh:

#!/bin/sh

# Check if database is initialized
if test -f /app/initialized; then
  # Database already initialized, skip setup
  echo "Database already initialized"
else
  # Initialize database
  ./my-project -setup
  touch /app/initialized
fi

# Start the application
exec /go/bin/my_project
Salin selepas log masuk

Menggunakan Pengurusan Volume

Docker 1.9 dan kemudiannya menyediakan keupayaan pengurusan volum asli, menghapuskan keperluan untuk bekas "data sahaja". Anda boleh memudahkan fail karang anda seperti berikut:

services:
  mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth
Salin selepas log masuk

Nota tentang Skrip Entrypoint

Dalam skrip titik masuk, adalah penting untuk menangani kemungkinan kelewatan dalam ketersediaan pangkalan data. Skrip harus mencuba semula percubaan sambungan jika pangkalan data masih belum boleh diakses.

Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Perintah Sekali dalam Docker Compose untuk Proses Bergantung kepada Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan