Docker-compose
=> 여러 개의 컨테이너로 구성된 애플리케이션을 정의 & 실행해 주어
애플리케이션의 관리를 도와주는 기능!!
대개 Docker를 설치할 때 Docker-compose가 함께 설치되는 경우가 많으며
docker-compose --version
명령어로 버전 확인이 가능하다!
version: "3.8"
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile #해당 부분의 Dockerfile로 이미지 build
ports:
- "19000:19000" #컨테이너에 노출된 포트와 호스트 컴퓨터의 포트를 연결
- "19001:19001"
- "19002:19002"
volumes: #변경사항을 docker image에 실시간 반영하게 해 준다?
- ./frontend/:/frontend
- ./frontend/node_modules:/frontend/node_modules
command: > # 셀에서 커멘드 실행
sh -c "expo start -c"
environment: #환경 변수 지정
- EXPO_DEVTOOLS_LISTEN_ADDRESS= 0.0.0.0
- REACT_NATIVE_PACKAGER_HOSTNAME=192.168.0.1
- EXPO_DEBUG=true
stdin_open: true #docker run -i
tty: true #셀 실행이 끝나도 컨테이너가 죽지 않게끔. docker run -t
backend:
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "8000:8000"
tty: true
volumes:
- ./backend:/backend
- ./backend/account:/backend/account
- ./backend/challenges:/backend/challenges
command: >
sh -c "python manage.py runserver 0.0.0.0:8000"
environment:
- DB_HOST=db
- DB_NAME=Dustar
- DB_USER=postgres
- DB_PASS=
depends_on:
- db
db:
image: postgres:9.6.24
environment:
- POSTGRES_DB=Dustar
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=
사실 아직 해결 못한 에러도 남아있고..
(expo devtools 페이지가 정상적으로 열리지 않는 문제라던가..)
Docker 사용하기 1,2,3을 작성하면서, 도커에 관한 내용을 정리하여 글로 옮기기에는 아직 아는 게 너무 없는 상태라는 걸 여실히 깨달았다...^^
앞으로 프로젝트를 진행하면서, 조금 더 익숙해진다면
Docker에 대해 다시 한 번 정리해 봐야 할 것 같다!!