[Docker 개발환경 5] docker-compose.yml 파일

2024. 12. 1. 01:14코딩공부/docker

728x90

점점 도커 명령어가 많아지는걸 느끼고 있다...

이제 docker-compose 파일을 만들어서 필요한 옵션들을 집어넣어서 관리하는게 좋을 것 같다.

version: "3.8"
services:
  app:                      # 컨테이너 이름
    image: python-dev       # 이미지 이름
    build:
      context: .            # Dockerfile이 위치한 디렉토리
    volumes:
      - ./local_dir:/app    # 로컬 디렉토리(local_dir)를 컨테이너 디렉토리(/app)에 마운트
    working_dir: /app       # 컨테이너 내부 작업 디렉토리 설정
    command: bash           # 기본 실행 명령어

docker-compose 파일은 이런식으로 작성되는데, 여러가지 정보들을 담아야 한다.

일단 첫번째 줄에 version 부분에는 도커 버전을 작성해야하는데, 요즘은 생략해도 문제없다.

- services로 묶이는 부분에 여러 옵션을 적어두면 되는데, 우선 빌드해둔 이미지가 있어야 한다.

- app 부분에는 컨테이너 이름을 작성하면 되고,

- image 부분에 빌드해둔 이미지 이름을 적어주면 된다.


위 코드에는 로컬 디렉토리를 마운트해주는 옵션을 넣어두었다.

현재 내 폴더 상황

나는 Projects 파일 안에 여러 코드 파일들을 저장해두고 사용하는데,

이 프로젝트들마다 도커파일과 도커 컴포즈 파일을 만들어 개발환경을 구성하고자 한다.

docker-compose 파일까지 다 만들어졌다면, 아래 두 명령어를 차례로 실행하여 컨테이너를 빌드할 수 있다.

docker compose build
docker compose up

간단하게 btc_auto 폴더에 똑같이 도커 파일과 도커 컴포즈 파일을 생성해뒀고, 파일 마운트 기능까지 잘 작성해뒀지만...

도커 데스크탑에서의 실행오류

어째서인지 컨테이너가 실행되자마자 꺼진다.

챗지피티한테 물어보니 코드를 실행할 것이 아니라면 다른 명령어를 docker compose 파일에 작성해둬야 한단다...

일단 챗지피티에게 들은대로 파일을 수정하면 아래와 같다.

services:
  btc-auto:
    image: python-dev
    build:
      context: .            # Dockerfile이 위치한 디렉토리
    volumes:
      - /c/Users/woghd/Desktop/projects/btc_auto:/app
    working_dir: /app       # 컨테이너 내부 작업 디렉토리 설정
    command: tail -f /dev/null       # 기본 실행 명령어

파일 마운트 부분과 command 부분이 변경되었는데,

volumes 부분에는 chat GPT를 통해 받은 docker-compose 파일 전용 형식으로 변경해두었다.

command 부분에는 bash 대신 다른 명령어가 들어갔는데, 코드 실행 후 컨테이너가 바로 꺼지는게 아니라 대기할 수 있도록 명령어를 수정해주었다.

vs코드에서도 정상적으로 컨테이너와 연결된걸 볼 수 있다.

728x90