Menyiapkan mount dump database
Anda harus memasang dump ke dalam wadah sehingga Anda dapat mengaksesnya. Sesuatu seperti ini di docker-compose.yml:
db:
volumes:
- './db_dump:/db_dump'
Buat direktori lokal bernama db_dump
dan tempatkan db_dump.gz
. Anda file di sana.
Mulai wadah basis data
Gunakan POSTGRES_DB
di lingkungan (seperti yang Anda sebutkan dalam pertanyaan Anda) untuk secara otomatis membuat database. Mulai db
dengan sendirinya, tanpa server Rails.
docker-compose up -d db
Impor data
Tunggu beberapa detik hingga database tersedia. Kemudian, impor data Anda.
docker-compose exec db gunzip /db_dump/db_dump.gz
docker-compose exec db psql -U postgres -d dbname -f /db_dump/db_dump.gz
docker-compose exec db rm -f /db_dump/db_dump.gz
Anda juga dapat membuat skrip untuk melakukan impor ini, menempelkannya di gambar Anda, dan kemudian menggunakan satu perintah docker-compose untuk memanggilnya. Atau Anda dapat meminta skrip titik masuk Anda memeriksa apakah ada file dump, dan jika demikian, unzip dan impor... apa pun yang perlu Anda lakukan.
Mulai server Rails
docker-compose up -d web
Mengotomatiskan ini
Jika Anda melakukan ini dengan tangan untuk persiapan penyiapan baru, maka Anda selesai. Jika Anda perlu mengotomatiskan ini menjadi rantai alat, Anda dapat melakukan beberapa hal ini dalam skrip. Mulai saja wadah secara terpisah, lakukan impor db di antaranya, dan gunakan sleep
untuk menutupi penundaan startup.