DevOps

도커 컴포즈 파일 작성하기

r잡초처럼 2023. 3. 10. 02:42

컨테이너는 격리된 상태로 생성되고 기본적으로 외부와 통신할 수 없게 설정돼 있다. 이때 도커 컴포즈를 이용하면 손쉽게 컨테이너를 연결시킬 수 있다.

Node와 MySQL DB 연결하기

version: "3.7"							 # 도커 컴포즈 버전

services:  								 # 이 하단부에 컨테이너들을 정의
  mysql:								 # 컨테이너 이름
    image: mysql:5.7					 # 컨테이너에서 사용하는 이미지
    volumes:							 # 볼륨 연결
      - todo-mysql-data:/var/lib/mysql
    environment: 						 # 환경변수
      MYSQL_ROOT_PASSWORD: 1234
      MYSQL_DATABASE: todos

  docs:
    build:
      context: .						 # Dockerfile이 있는 경로
      dockerfile: Dockerfile			 # 파일명이 Dockerfile이 아닌 경우 기입
      target: dev
    ports:								 # 포트 연결
      - 8000:8000
    volumes:
      - ./:/app
    environment: 
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: 1234
      MYSQL_DB: todos
    depends_on: 						 # 앞서 생성한 DB와 의존성 연결
      - mysql
    restart: always

    
volumes:
  todo-mysql-data:

그리고 docker-compose up 명령으로 실행하면 다음과 같이 잘 뜬다.