docker-compose.yml
version: '3.8'
services:
wordpress: # WordPress 서비스 정의
image: wordpress:php8.1-fpm # WordPress 공식 이미지를 사용 (PHP-FPM 기반)
container_name: wordpress # 컨테이너 이름 지정
environment: # WordPress에서 사용할 데이터베이스 정보 환경 변수로 설정
WORDPRESS_DB_HOST: db:3306 # 데이터베이스 컨테이너의 호스트명 및 포트
WORDPRESS_DB_USER: wordpress # 데이터베이스 사용자 이름
WORDPRESS_DB_PASSWORD: wordpress # 데이터베이스 사용자 비밀번호
WORDPRESS_DB_NAME: wordpress # 사용할 데이터베이스 이름
volumes: # WordPress 데이터를 호스트에 영구적으로 저장하기 위해 볼륨 사용
- wordpress_data:/var/www/html # WordPress 파일이 저장될 경로
depends_on: # db 서비스가 준비된 후 실행되도록 설정
- db
db: # 데이터베이스 서비스 정의
image: mysql:5.7 # MySQL 이미지 사용 (버전 5.7)
container_name: wordpress_db # 컨테이너 이름 지정
environment: # MySQL 환경 변수 설정
MYSQL_DATABASE: wordpress # 생성할 기본 데이터베이스 이름
MYSQL_USER: wordpress # 데이터베이스 사용자 이름
MYSQL_PASSWORD: wordpress # 데이터베이스 사용자 비밀번호
MYSQL_ROOT_PASSWORD: root_password # MySQL 루트 사용자 비밀번호
volumes: # 데이터베이스 데이터를 호스트에 영구적으로 저장하기 위해 볼륨 사용
- db_data:/var/lib/mysql # MySQL 데이터가 저장될 경로
nginx: # Nginx 서비스 정의
image: nginx:latest # Nginx 이미지를 사용
container_name: wordpress_nginx # 컨테이너 이름 지정
ports: # 호스트와 컨테이너 포트 매핑
- "8080:80" # 호스트의 8080 포트를 컨테이너의 80 포트로 연결
volumes: # Nginx 설정 파일과 WordPress 데이터 경로를 연결
- wordpress_data:/var/www/html # WordPress 파일 경로
- ./nginx.conf:/etc/nginx/conf.d/default.conf # 사용자 정의 Nginx 설정 파일
depends_on: # WordPress 서비스가 준비된 후 실행되도록 설정
- wordpress
volumes: # 볼륨 정의
wordpress_data: # WordPress 데이터를 위한 볼륨
db_data: # 데이터베이스 데이터를 위한 볼륨