2017-10-24 2 views
5

현재 Java MVC, NodeJS, Flask 및 MongoDB의 4 개의 도커 컨테이너로 구성된 로컬에서 테스트되고 작동하는 웹 응용 프로그램이 있습니다. 4 개의 Dockerfiles가 각각 하나씩 있고 docker-compose.yml을 사용하여 빌드를 관리합니다.Docker가 관리하는 Docker 컨테이너를 Heroku에 푸시하는 방법은 무엇입니까?

그러나 지금은 코드를 Heroku로 보내고 설명서는 https://devcenter.heroku.com/articles/container-registry-and-runtime입니다. 그러나 생산 라인에서 docker-compose를 사용하는 방법은 매우 모호합니다.

"멀티 컨테이너 응용 프로그램을 만든 경우 Docker Compose를 사용하여 로컬 개발 환경을 정의 할 수 있습니다 .Docker Compose를 사용하여 로컬 개발을 수행하는 방법에 대해 알아보십시오."

누구든지 Heroku의 CLI를 사용하여 Heroku 컨테이너로 프로젝트를 푸시 할 수있는 실제 코드를 안내 할 수 있습니까?

+0

docker-compose.yml 파일을 만들었습니까? Dockerfile을 사용하여 응용 프로그램과 노출하려는 포트와 마운트 할 볼륨에 대한 도커 이미지를 만들 수 있습니다. docker-compose.yml을 만들 수 있습니다. –

+0

응용 프로그램이 서로 종속되어있는 경우 모두 작성할 수 있습니다. 그렇지 않으면 개별 docker-compose.yml 파일을 만들어야합니다. –

+0

@JinnaBalu 이미 docker-compose.yml이 있습니다. 그러나, 나는 문서가 매우 모호하기 때문에 마침내 Heroku에 코드를 푸는 방법을 찾고있다. – AspiringMat

답변

0

당신이 찾고있는 무엇에 대한보다 정확한에게 Heroku 설명서는 여기에 있습니다 : https://devcenter.heroku.com/articles/container-registry-and-runtime

는 위에게 Heroku 컨테이너 플러그인을 설정하고 레지스트리에 로그인을 통해 당신을 안내합니다. 당신은 당신의 dockerfile에 다음 행으로 Dockerfile에 이미지를 마이그레이션 할 수 있습니다

FROM "<insert Dockerfile tag here>" 

쉽게 당신은 Dockerfile.mongo, Dockerfile.node, Dockerfile 같은 다른 접미사와 Dockerfiles 이름을 것입니다,이 설정하려면 .flask 및 Dockerfile.javamvc. 접미사는 heroku에게 웹 앱에 사용 된 dyno 이름을 알려줍니다. Heroku가이 docker- 읽지 않기 때문에

heroku container:push --recursive 

: 당신이 당신의 모든 컨테이너를 밀어해야하는 경우 모두 고유 접미사를 가지고, 당신은 재귀 적으로 한 모든 dockerfiles를 구축 할 것입니다 다음 명령으로 그렇게 할 수 있습니다 파일 작성, 환경 변수 설정/포트 노출/etc는 Dockerfile로 마이그레이션해야합니다. 또한 Heroku의 컨테이너로 영구 저장 장치/볼륨 마운팅을 수행하는 방법을 찾을 수 없으므로 mongo 데이터베이스에 Heroku 애드온을 사용하는 것이 좋습니다.

Heroku에서 앱은 Dockerfile 당 하나의 dyno로 실행되며 각 Docko의 이름은 각 Dockerfile의 접미사로 표시됩니다.

관련 문제