코딩과로그
[기록용] 도커 컴포즈 파일 정리 본문
networks:
도커 컴포트 내의 컨테이너는 기본적으로 같은 네트워크를 공유한다.
따라서 컴포즈 내 컨테이너끼리 같은 네트워크를 공유하려는 목적이면 networks를 작성하지 않아도 된다.
실습한 깃헙 링크:
파일 문법 정리
# 도커 컴포즈 Document 문법에 대한 버전명
version: "3.8"
# 실행할 컨테이너들
services:
# 생성할 컨테이너명 (엄밀히 말하자면 생성될 컨테이너명의 일부)
mongodb:
# 이미지명
image: mongo
# 도커 컴포즈 실행 시 자동으로 컨테이너명이 지정되나 명시적으로 컨테이너명을 설정할 수도 있음.
container_name: mongodb
# 컨테이너에서 사용할 볼륨 리스트
volumes:
- data:/data/db
# :delegated의 의미: 호스트에 바로바로 반영하지 않고 배치 형식으로 반영하여 반응이 조금 느리더라도 퍼포먼스를 향상시킴.
- ./src/:/var/www/html:delegated
# 환경 변수 설정
# environment:
# MONGO_INITDB_ROOT_USERNAME: root
# MONGO_INITDB_ROOT_PASSWORD: secret
# 읽어올 환경변수 파일 지정
env_file:
- ./env/mongo.env
backend:
# build: ./backend
# 직접 이미지 빌드
build:
# 빌드를 시작할 경로
context: .
# 도커파일명
dockerfile: ./backend/Dockerfile
# Dockerfile == ARG some-arg=1
args:
some-arg: 1
# 호스트포트:컨테이너포트
ports:
- '80:80'
volumes:
- logs:/app/logs
- ./backend:/app
- /app/node_modules
env_file:
- ./env/backend.env
# 지정한 컨테이너가 실행된 뒤 실핼하도록 지정 (실행 의존성 설정)
depends_on:
- mongodb
frontend:
build: ./frontend
ports:
- '3000:3000'
volumes:
- ./frontend/src:/app/src
# -it
stdin_open: true
tty: true
depends_on:
- backend
# 컨테이너에서 사용하는 named 볼륨은 모두 여기에서 작성되어 있어야 한다.
volumes:
data:
logs:
ref:
https://www.udemy.com/course/docker-kubernetes-the-practical-guide/learn/lecture/22167068#overview
'Docker' 카테고리의 다른 글
[기록용] util용으로 도커 사용하기 (dockerfile에서 명시된 cmd외 다른 명령을 실행시키고 싶을 때) (0) | 2023.04.01 |
---|---|
[기록용] 도커 컴포즈 명령어 정리 (ing) (0) | 2023.03.31 |
[기록용] 도커 네트워크 연결 (0) | 2023.03.31 |
[기록용] 도커 환경변수 설정하는 다양한 방법 (ENV, ARG) (0) | 2023.03.30 |
도커 이미지 빌드 시 캐시 활용 (feat: Image Layer) (0) | 2023.03.29 |