# Version top-level element
# Optional 정보 (사용자에게 정보제공적 의미)
# Docker-Compose에서는 사용하지 않음
version: '3.8'
# Name top-level element
# 프로젝트명, (생략되면 자동으로 생성)
# 환경변수로 프로젝트명이 등록됨
# environment-variable ${COMPOSE_PROJECT_NAME}
# 컨테이너 정의
services:
database:
# 서비스명
container_name: cms_db
# 이미지명
image: mariadb:10.6
# 컨테이너가 종료할 때 적용하는 정책
# no : 기본정책. 재시작하지 않음
# always : 제거할 때까지 재시작
# on-failure[:max-retries] : 종료 코드가 에러일 때만 재시작
# max-retries 만큼 재시작함
# unless-stopped: 종료코드와 상관없이 재시작하지만
# 서비스가 멈추거나 제거할 때 재시작을 멈춤.
restart: always
# 환경변수 세팅
environment:
MYSQL_DATABASE: cms
MYSQL_ROOT_HOST: '%'
MYSQL_ROOT_PASSWORD: 1234
TZ: 'Asia/Seoul'
ports:
- "3306:3306"
volumes:
- ./mysql/conf.d:/etc/mysql/conf.d # MySQL 설정 파일 위치
- ./mysql/initdb.d:/etc/mysql/initdb.d
command:
- "mysqld"
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
networks:
- test_network
localstack:
container_name: "localstack"
image: localstack/localstack:0.14.3 # 버전에 따라 설정이 다른점이 많아서 지정하였음
ports:
- "4510-4559:4510-4559" # external service port range
- "4566:4566" # LocalStack Edge Proxy
environment:
- SERVICES=sns,sqs,s3,dynamodb,ssm,secretsmanager,kms # 사용할 서비스 목록
- DEBUG=${DEBUG-}
- DATA_DIR=${DATA_DIR-}
- HOST_TMP_FOLDER=${TMPDIR:-/tmp/}localstack
- DOCKER_HOST=unix:///var/run/docker.sock
- AWS_ACCESS_KEY_ID=test # 내부에서 aws 커맨드 사용을 위해 지정 awslocal 을 사용하면 필요없음
- AWS_SECRET_ACCESS_KEY=test # 위와 동일
- AWS_DEFAULT_REGION=us-east-1 # 위와 동일
volumes:
- "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
networks:
- test_network
networks:
test_network: