Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melaksanakan Perintah Satu Kali dalam Docker Compose?
Melaksanakan Perintah Satu Kali dalam Docker Compose
Dalam konteks Docker compose, anda mencari penyelesaian untuk melaksanakan arahan tertentu ( ./my-project -setup) sekali sahaja, tidak kira bekas dimulakan semula atau penempatan. Keperluan ini timbul untuk situasi yang memerlukan permulaan atau persediaan data.
Untuk menangani isu ini, pertimbangkan untuk melaksanakan skrip titik masuk dalam bekas anda. Skrip ini akan mengendalikan tugas menyemak sama ada pangkalan data telah dimulakan. Jika belum, skrip akan melaksanakan langkah permulaan yang diperlukan.
Adalah penting untuk ambil perhatian bahawa pesanan permulaan kontena tidak dijamin, jadi bekas aplikasi mungkin dimulakan sebelum bekas pangkalan data. Untuk menjelaskan perkara ini, skrip harus menggabungkan logik untuk mengendalikan kejadian sedemikian.
Contoh pendekatan ini boleh didapati dalam imej WordPress rasmi (https://github.com/docker-library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/apache/docker-entrypoint.sh#L146-L171). Skrip cuba menyambung ke pangkalan data dan menyemak sama ada pemulaan diperlukan, mencuba semula jika pangkalan data masih belum boleh diakses.
Mengoptimumkan Pengurusan Volume
Dalam karang Docker awal anda fail, anda menggunakan bekas "data sahaja" untuk melampirkan kelantangan anda. Walau bagaimanapun, versi moden Docker (1.9 dan ke atas) menyediakan keupayaan pengurusan volum. Ini menghapuskan keperluan untuk bekas data sahaja yang berasingan.
Anda boleh memudahkan fail karang Docker anda dengan mengalih keluar bekas data sahaja dan mengubah suai perkhidmatan mongo seperti berikut:
mongo: image: mongo:latest volumes: - mongodata:/data/db ports: - "28001:27017" command: --smallfiles --rest --auth
Konfigurasi ini akan mencipta volum bernama mongodata jika ia belum wujud, atau ia akan menggunakan semula volum sedia ada dengan nama itu. Anda boleh mengurus volum menggunakan arahan docker volume ls untuk penyenaraian dan docker volume rm
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perintah Satu Kali dalam Docker Compose?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!