version: "3.8"
services:
mongodb:
image: 'mongo'
volumes:
- data:/data/db
container_name: mongodb # 컨테이너 이름 지정
environment:
# MONGO_INITDB_ROOT_USERNAME: max
- MONGO_INITDB_ROOT_USERNAME=max
env_file:
- ./env/mongo.env
networks: # compose는 같은 네트워크에 포함이기 때문에 사용안하는거 권장!
- goals-net
backend:
# 도커 파일 찾아서 빌드 후 이미지로 사용
build: ./backend
# build:
# context: ./backend
# dockerfile: Dockerfile
# args:
# somne-arg: 1
restart: always # 재시작
ports:
- '80:80'
volumes:
- logs:/app/logs # Named Volume
- ./backend:/app # Binds Mount
- /app/node_modules # Anonymous Volume
env_file:
- ./env/backend.env
depends_on:
- mongodb
volumes: # 키 값만 추가
data:
logs:
volumes:
- logs:/app/logs # Named Volume
- ./backend:/app # Binds Mount
- /app/node_modules # Anonymous Volume
environment:
# MONGO_INITDB_ROOT_USERNAME: max
- MONGO_INITDB_ROOT_USERNAME=max
env_file:
- ./env/mongo.env
stdin_open: true # -it
tty: true # -it
command: sh -c "yarn install && yarn run dev"
depends_on:
- backend
- mongodb
restart: always # 재시작
ports:
- '80:80'
depends_on을 활용해서 컨테이너를 실행하여도 컨테이너가 완전히 실행한 후 다음 컨테이너를 실행하지 않는다.
# 실행 -d: detach
# --build: rebuild
docker-compose up -d
# 이미지 build
docker-compose build
# 종료 및 삭제
docker-compose down -v