Bir LAMP yığını, Mongo DB ve kendi hizmetlerimi çalıştırmak için benzer bir gereklilik vardı
Docker, OS tabanlı sanallaştırmadır, bu nedenle kapsayıcısını çalışan bir işlem etrafında izole eder, bu nedenle FOREGROUND'da çalışan en az bir işlem gerektirir.
Böylece, başlangıç noktası olarak kendi başlangıç komut dosyanızı sağlarsınız , böylece başlangıç komut dosyanız genişletilmiş bir Docker görüntü komut dosyası haline gelir.
Bu yüzden Docker görüntü dosyamın sonunda iki satır var:
COPY myStartupScript.sh /usr/local/myscripts/myStartupScript.sh
CMD ["/bin/bash", "/usr/local/myscripts/myStartupScript.sh"]
Senaryomda tüm MySQL, MongoDB, Tomcat vb. Çalıştırıyorum. Sonunda Apache'mi ön plan olarak çalıştırıyorum.
source /etc/apache2/envvars
/usr/sbin/apache2 -DFOREGROUND
Bu, tüm hizmetlerimi başlatmamı ve son hizmet ön planda olmaya başlayarak kapsayıcıyı canlı tutmamı sağlıyor
Umarım yardımcı olur
GÜNCELLEME : Bu soruyu en son yanıtladığımdan beri, Docker compose gibi her şey kendi kapsayıcısında çalıştırmanıza yardımcı olabilir, ancak hepsini bu hizmetler arasında bağımlılıklar olarak birbirine bağlayabilir, docker-compose ve kullanın, ihtiyaçlarınız onunla uyuşmadıkça daha zarif bir yoldur.