MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara menjalankan perintah sekali dalam penulisan Docker

Saya sarankan untuk menambahkan skrip titik masuk ke wadah Anda; dalam skrip titik masuk ini, Anda dapat memeriksa apakah database telah diinisialisasi, dan jika belum, lakukan langkah-langkah yang diperlukan.

Seperti yang Anda perhatikan dalam pertanyaan Anda, urutan dimulainya layanan/wadah tidak boleh diterima begitu saja, jadi mungkin wadah aplikasi Anda dimulai sebelum wadah basis data, jadi skrip harus memperhitungkannya.

Sebagai contoh, lihat gambar resmi WordPress, yang melakukan inisialisasi basis data satu kali di skrip titik masuknya. Script mencoba untuk menyambung ke database (dan mencoba lagi jika database tidak dapat dihubungi (belum)), dan memeriksa apakah inisialisasi diperlukan; https://github.com /docker-library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/Apache/docker-entrypoint.sh#L146-L171

CATATAN

Saya perhatikan Anda membuat "wadah khusus data" untuk melampirkan volume Anda. Sejak buruh pelabuhan 1.9, buruh pelabuhan memiliki manajemen volume, termasuk penamaan volume. Karena itu, Anda tidak perlu lagi menggunakan penampung "hanya data".

Anda dapat menghapus penampung data saja dari file penulisan Anda, dan mengubah layanan mongo Anda agar terlihat seperti ini;

  mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth

Ini akan membuat volume baru, bernama mongodata jika tidak ada, atau gunakan kembali volume yang ada dengan nama itu. Anda dapat membuat daftar semua volume menggunakan docker volume ls dan hapus volume dengan docker volume rm <some-volume> jika Anda tidak membutuhkannya lagi



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 'mongorestore' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan, atau file batch

  2. Bagaimana cara mengubah tahun dan minggu dari tahun yang diperoleh dari kueri MongoDB menjadi Joda datetime?

  3. Bagaimana cara mengonversi format tanggal di mongodb

  4. $in operator mongoDB dengan _id di perl

  5. Cara menggunakan operator $in di mongodb dengan dua bidang di java