version: '3.1'
services:
database:
image: mongo:4.2.6
container_name: smartordb
restart: always
environment:
MONGO_INITDB_DATABASE: admin
MONGO_INITDB_ROOT_DATABASE: admin
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 1234
volumes:
- ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
- ./mongod.conf:/etc/mongod.conf
- ../data:/data/db
ports:
- '27017:27017'
app:
container_name: smartorengine1
build:
context: .
dockerfile: ./DockerFile
environment:
RoomNumber: 1
image: engine:1.0
depends_on:
- db
위에서 본 docker-compose파일을 하나씩 내용을 정리해 보자.
docker-compose mongodb 설정
version
도커컴포즈는 버전별로 지원하는 명령어 등이 다름으로 command들이 버전에 해당하는지 확인하고 사용해야 한다.
service
도커컴포즈에서는 컨테이너란 용어 대신 serevice라는 용어로 사용하며 이는 컨테이너들을 명칭한다.
database
도커컨테이너의 이름을 말함
image
도커이미지를 말하며 이름과 만약 tag가 지정되어있다면 tag도 설정해야한다.
container_name
명령어 그대로 해당 컨테이너 이름
restart
프로그램 종료 시 자동 재시작 설정
environment
해당 컨테이너의 환경설정 값을 설정. 환경설정을 해두면 app들이 사용할 것임 여기서는 mongod가 해당 환경설정값을 기준으로 동작함.
volumes
상대경로를 지정하여 host pc와 컨테이너와의 연결시키는 명령어.
volume설정된 파일 중에서 한쪽이 변경되면 즉 host의 파일이 변경되거나 컨테이너의 파일이 변경되면 둘다 반영된다.
port
< host port > : < container port > host pc와 container port가 바인딩 시킨다.
댓글