2017-10-24 110 views
5

Şu anda 4 tane docker konteynerinden oluşan yerel olarak test edilmiş ve çalışan bir web uygulaması var: Java MVC, NodeJS, Flask ve MongoDB. Her biri için bir tane 4 Dockerfile var ve yapıları docker-compose.yml ile yönetiyorum.Docker-compose tarafından yönetilen Docker kapsayıcıları Heroku'ya nasıl itilir?

Ancak, şimdi kodumu Heroku'ya zorlamak istiyorum ve belgeleri https://devcenter.heroku.com/articles/container-registry-and-runtime adresinde okuyorum. Ancak, docker-compose'un üretim hattında nasıl kullanılacağı konusunda çok belirsiz görünüyor.

". Eğer yerel geliştirme ortamı tanımlamak için Docker Yaz'ı kullanabileceğiniz bir çok konteyner uygulaması yerel kalkınma Docker Yaz'ı nasıl kullanacağınızı öğrenin oluşturduysanız": Bu dokümanlar üzerinde şöyle diyor

Bana projemi Heroku'nun CLI'sini kullanarak Heroku Container'a nasıl taşıyabileceğime dair bazı gerçek kodlara yönlendirebilir miyim?

+0

Bir docker-compose.yml dosyası oluşturdunuz mu? Dockerfile uygulamanızın oluşturulduğu uygulamalara ve bağlantı noktalarına ve montaj yapmak istediğiniz birimlere oluşturmak için Dockerfile'ınız varsa. Bir docker-compose.yml oluşturabiliriz –

+0

Eğer uygulamalarınız birbirine bağımlıysa, tüm oluşturmak için oluşturabiliriz, aksi takdirde bireysel docker-compose.yml dosyalarını oluşturmalısınız –

+0

@JinnaBalu Zaten bir docker-compose.yml var. Ancak, kodlarımın üzerine çok belirsiz olduklarından kodumu Heroku'ya itmenin bir yolunu arıyorum. – AspiringMat

cevap

0

Yapmanız aradıklarını için daha doğru Heroku dokümanları buradadır: https://devcenter.heroku.com/articles/container-registry-and-runtime

yukarıdaki Heroku konteyner eklentisi kurma ve kayıt giriş size yol gösterecektir. Hatta dockerfile aşağıdaki satırı ile bir Dockerfile bir görüntüyü taşıyabilirsiniz:

FROM "<insert Dockerfile tag here>" 

kolayca böyle Dockerfile.mongo, Dockerfile.node, Dockerfile gibi farklı soneklerinin, ile Dockerfiles isim olacak, Bunu ayarlamak için .flask ve Dockerfile.javamvc. Sonek, web uygulamanız için kullanılan dinoo adını kahramana söyler. Heroku docker- okumuyor gibi

heroku container:push --recursive 

: Eğer konteyner tüm itmek gerektiğinde hepsi benzersiz eklerini sahip olarak, yinelemeli sürece tüm dockerfiles inşa edecek şu komutla ile yapabilirsiniz dosyaları oluştur, herhangi bir ortam değişkenini ayarlama/bağlantı noktası açıklığı/vb Dockerfile geçirilmesi gerekir. Ayrıca, Heroku'daki konteynerlerle kalıcı depolama/hacim montajının nasıl yapılacağını bulamadığım için, mongo veritabanınız için bir Heroku eklentisi kullanmanızı tavsiye ederim.

Heroku'da, uygulamanızın Dockerfile başına bir dyno olarak çalıştığını görürsünüz, her bir dyno'nun adı her Dockerfile'ın son eki olarak.