Khususnya dengan Rails, saya tidak memiliki pengalaman apa pun, tetapi mari kita lihat dari sudut pandang buruh pelabuhan dan rekayasa perangkat lunak.
Tim Docker menganjurkan, terkadang dengan cukup agresif, bahwa kontainer adalah tentang aplikasi pengiriman. Di pernyataan yang sangat bagus ini , Jerome Petazzoni mengatakan bahwa ini semua tentang pemisahan keprihatinan. Saya merasa inilah poin yang sudah Anda ketahui.
Menjalankan wadah Rails yang memulai migrasi atau penyiapan mungkin baik untuk penerapan awal dan mungkin sering diperlukan selama pengembangan. Namun, saat masuk ke produksi, Anda benar-benar harus mempertimbangkan untuk memisahkan masalah.
Jadi saya akan mengatakan memiliki satu gambar, yang Anda gunakan untuk menjalankan wadah N rails dan menambahkan alat/migrasi/setup wadah apa pun, yang Anda gunakan untuk melakukan tugas administratif. Lihat apa yang pengembang dari gambar rails resmi katakan tentang ini:
Saat Anda melihat gambar itu, tidak ada pengaturan atau perintah migrasi. Terserah pengguna bagaimana menggunakannya. Jadi, ketika Anda perlu menjalankan beberapa container, silakan saja.
Dari pengalaman saya dengan mysql ini bekerja dengan baik. Anda dapat menjalankan wadah khusus data untuk menampung data, menjalankan wadah dengan server mysql dan akhirnya menjalankan wadah untuk tugas administratif seperti pencadangan dan pemulihan. Untuk ketiga wadah Anda dapat menggunakan gambar yang sama. Sekarang Anda bebas mengakses database Anda dari katakanlah beberapa Wordpress kontainer. Ini berarti pemisahan kekhawatiran yang jelas. Saat Anda menggunakan docker-compose
tidak terlalu sulit untuk mengelola semua container tersebut. Tentunya sudah banyak container dan alat pihak ketiga yang juga mendukung Anda dengan menyiapkan aplikasi kompleks yang terdiri dari beberapa container.
Terakhir, Anda harus memutuskan apakah buruh pelabuhan dan arsitektur layanan mikro tepat untuk masalah Anda. Sebagaimana diuraikan dalam artikel ini ada beberapa alasan menentang. Salah satu masalah inti adalah bahwa ia menambahkan lapisan kompleksitas yang sama sekali baru. Namun, itulah yang terjadi dengan banyak solusi dan saya kira Anda menyadari hal ini dan bersedia untuk mengecualikannya.