이제부터 mongodb를 사용하게 되는데 이 또한 컨테이너로 독립된 구성을 만들어
--network를 통해 컨테이너간 통신을 진행하여 개발하려 했다. 그러나, 이미 비대해진 명령어를 두번씩(각 컨테이너별로) 실행시키는 것도 불편할 뿐만 아니라 변경점이 있을 때 명령어에서 수정이 이뤄지면서 생기는 오타나 에러 등으로 생기는 시간소모가 아쉬워 여러개의 컨테이너를 파일로 관리할 수 있는 Docker-Compose
를 채용하게 되었다.
//현재 두개의 컨테이너(DB,Node) 사용중
//docker-compose.yml file
services:
mongodb:
image: "mongo"
volumes:
- data:/data/db
environment:
- TZ=Asia/Seoul
wetube-practice:
build: ./
ports:
- "4000:8000"
volumes:
- ./:/app
- /app/node_modules
environment:
- TZ=Asia/Seoul
depends_on:
- mongodb
volumes:
data:
해당 파일이 존재하는 곳에서 docker-compose on
으로 실행
제대로 실행되는 것을 확인할 수 있다.
process.env.PORT로 Dockerfile의 환경변수로 PORT 대체.
ex) app.listen(process.env.PORT)