인프런 커뮤니티 질문&답변

san0558님의 프로필 이미지
san0558

작성한 질문수

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]

아래와 같은 오류는 depens_on때문인가요

작성

·

199

0

문제 상황 : mysql과 mongodb를 flask에 연동하려고 했습니다. 문제는 mongodb와 mysql을 먼저 띄우면 문제가 되지 않지만, docker-compose로 mysql과 mongodb를 flask와 함께 띄우면 아래와 같은 에러 메시지가 뜹니다. 물론 depends_on옵션도 줬습니다.

아래와 같은 경우, 몽고 db가 제대로 뜨기 전에 flask에서 접속을 시도해서 생긴 문제인가요?

답변 2

0

san0558님의 프로필 이미지
san0558
질문자

감사합니다. 해결되었습니다. 주신 자료 읽으면서  MONGO_HOST: localhost라는 옵션 하나만 추가했더니 제대로 통신이 되었습니다. 감사합니다.

mongodb:
image: mongo:4
container_name: mongo_db
restart: always
environment:
MONGO_HOST: localhost (한 줄 추가됨)
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: P@ssw0rd
volumes:
- mongo_db:/data/db
ports:
- "27017:27017"
networks:
- TEST_net

0

안녕하세요.

우선은 강의 내용은 아니긴 해서, docker-compose 설정을 상세히 봐야 이해할 수 있을 것은 같습니다. 다만 풀스택 파트1과 이어지는 부분이라고 생각하고, 보면, 제 생각에는 mongodb 도 mysql 처럼 docker 를 만들때, 다음 예와 같이 적절히 env 를 설정을 하셔야 할텐데, 그런 부분이 잘못된 것이 아닐까 생각이 듭니다.

https://woolbro.tistory.com/90

또 당연히 mongodb 도 실행하는데 일정한 시간이 걸리기 때문에, flask 에서 mongodb 를 접속할 때는, 최초 웹서비스가 띄워지고, flask 를 통해 최초 요청이 들어왔을 때, mongodb 를 접속하도록 코드를 작성하는 것이 여러 케이스에도 안정적으로 보여집니다. 이외에 지금 보여주시는 부분이 에러인지는 살짝 의문이 들기는 해요. 본래도 mongodb 는 많은 메세지를 출력하기는 하니까요.

감사합니다.

san0558님의 프로필 이미지
san0558

작성한 질문수

질문하기