티스토리 뷰
발생일: 2016.08.19
키워드: Docker, 다커, 도커, 몽고디비, mongo db, wait-for-it.sh
문제:
Docker로 노드 서버와 몽고 디비 환경을 구성했다.
헌데, 노드 서버에서 몽고 디비를 찾을 수 없다며 오류가 난다.
서버에 접속해서 몽고 디비 서버를 확인해보면 제대로 떠있다.
docker-compose 에서 depends_on 으로 설정해도 문제가 발생한다.
왜 그런 걸까?
해결책:
노드 서버가 실행되면서 바로 몽고 디비 서버에 접속하는데,
몽고 디비가 실행되는데 5~6초 정도의 시간이 걸렸기 때문이다.
서버에 접속해서 서버를 확인했을 때는 이미 실행된 상태라 문제가 없었던 것이다.
검색해보니 `dockerize` 와 `wait-for-it.sh` 스크립트로 특정 포트가 뜰 때까지 기다릴 수 있다.
아래처럼 entrypoint에 wait-for-it 스크립트를 설정하는 것으로 해결했다.
version: '2'
services:
nginx:
image: nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
links:
- node:node
ports:
- "80:80"
depends_on:
- node
node:
image: [YOUR IMAGE]
volumes:
- ./node/src/app:/src/app
links:
- mongo:mongo
ports:
- "3000"
depends_on:
- mongo
entrypoint: ./wait-for-it.sh mongo:27017
mongo:
image: mongo
ports:
- "27017"
참고:
반응형
댓글
공지사항