Files
sam-docs/sam/docker/docker-compose.yml
김보곤 0c923401bf refactor: [docker] tenant 저장소를 shared-storage에서 mng/storage/app/tenants로 변경
- docker-compose: shared-storage 볼륨 마운트 제거
- entrypoint: storage/app/tenants 디렉토리 생성으로 변경
- nginx: tenant-storage alias 경로 변경
2026-02-23 21:32:51 +09:00

226 lines
6.6 KiB
YAML

services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- /home/aweso/sam/api:/var/www/api
- /home/aweso/sam/admin:/var/www/admin
- /home/aweso/sam/mng:/var/www/mng
- /home/aweso/sam/5130:/var/www/5130
- /home/aweso/sam/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- /home/aweso/sam/docker/nginx/ssl:/etc/nginx/ssl:ro
command: >
sh -c "rm -f /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
depends_on:
- api
- admin
- mng
- react
- design
- sales
- php73
networks:
- samnet
api:
build:
context: .
dockerfile: /home/aweso/sam/docker/api/Dockerfile
volumes:
- /home/aweso/sam/api:/var/www/api
- api_vendor:/var/www/api/vendor
- api_node_modules:/var/www/api/node_modules
- /home/aweso/sam/docker/api/nginx.conf:/etc/nginx/conf.d/default.conf
- /home/aweso/sam/docker/api/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
- /home/aweso/sam/docker/api/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
- /home/aweso/sam/docker/api/opcache.ini:/usr/local/etc/php/conf.d/opcache.ini
- /home/aweso/sam/docker/mysql/client-skip-ssl.cnf:/etc/mysql/conf.d/disable-ssl.cnf:ro
environment:
- DB_HOST=sam-mysql-1
- DB_PORT=3306
- DB_DATABASE=samdb
- DB_USERNAME=samuser
- DB_PASSWORD=sampass
networks:
- samnet
working_dir: /var/www/api
admin:
build:
context: .
dockerfile: /home/aweso/sam/docker/admin/Dockerfile
volumes:
- /home/aweso/sam/admin:/var/www/admin
- admin_vendor:/var/www/admin/vendor
- admin_node_modules:/var/www/admin/node_modules
- /home/aweso/sam/docker/admin/nginx.conf:/etc/nginx/conf.d/default.conf
- /home/aweso/sam/docker/admin/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
- /home/aweso/sam/docker/admin/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
- DB_HOST=sam-mysql-1
- DB_PORT=3306
- DB_DATABASE=samdb
- DB_USERNAME=samuser
- DB_PASSWORD=sampass
networks:
- samnet
working_dir: /var/www/admin
mng:
build:
context: .
dockerfile: mng/Dockerfile
volumes:
- ../mng:/var/www/mng
- mng_vendor:/var/www/mng/vendor
- mng_node_modules:/var/www/mng/node_modules
- ./mng/nginx.conf:/etc/nginx/conf.d/default.conf
- ./mng/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
- ./mng/opcache.ini:/usr/local/etc/php/conf.d/opcache.ini
- ./mng/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
# - ./mng/www.conf:/usr/local/etc/php-fpm.d/www.conf
- ../api/storage/logs:/var/www/api/storage/logs:ro
- ./mysql/client-skip-ssl.cnf:/etc/mysql/conf.d/disable-ssl.cnf:ro
- ../sales/apikey:/var/www/sales/apikey:ro # Google 서비스 계정 파일 접근용
- ../sales:/var/www/sales-docs:ro # 영업 PPTX 문서 접근용
# shared-storage 제거됨 → mng/storage/app/tenants 로 이동 (2026-02-23)
- ../docs:/var/www/docs:ro # SAM 프로젝트 문서 (RAG 검색용)
environment:
- DB_HOST=sam-mysql-1
- DB_PORT=3306
- DB_DATABASE=samdb
- DB_USERNAME=samuser
- DB_PASSWORD=sampass
networks:
- samnet
working_dir: /var/www/mng
react:
build:
context: /home/aweso/sam
dockerfile: docker/react/Dockerfile
volumes:
- /home/aweso/sam/react:/app
- /app/node_modules
- /app/.next
environment:
- NEXT_PUBLIC_API_URL=https://api.sam.kr
- NEXT_PUBLIC_ADMIN_URL=https://admin.sam.kr
- NEXT_PUBLIC_API_KEY=42Jfwc6EaRQ04GNRmLR5kzJp5UudSOzGGqjmdk1a
- NEXT_PUBLIC_APP_NAME=SAM
- NODE_ENV=development
- NODE_TLS_REJECT_UNAUTHORIZED=0
extra_hosts:
- "api.sam.kr:host-gateway"
networks:
- samnet
working_dir: /app
design:
build:
context: /home/aweso/sam
dockerfile: docker/design/Dockerfile
volumes:
- /home/aweso/sam/design:/app
- /app/node_modules
environment:
- NODE_ENV=development
networks:
- samnet
working_dir: /app
sales:
build:
context: .
dockerfile: /home/aweso/sam/docker/sales/Dockerfile
volumes:
- /home/aweso/sam/sales:/var/www/sales
- sales_vendor:/var/www/sales/vendor
- sales_node_modules:/var/www/sales/node_modules
- /home/aweso/sam/docker/sales/nginx.conf:/etc/nginx/conf.d/default.conf
- /home/aweso/sam/docker/sales/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
- /home/aweso/sam/docker/sales/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
- TZ=Asia/Seoul
networks:
- samnet
working_dir: /var/www/sales
php73:
build:
context: .
dockerfile: /home/aweso/sam/docker/5130/Dockerfile
volumes:
- /home/aweso/sam/5130:/var/www/5130
- php73_vendor:/var/www/5130/vendor
- php73_node_modules:/var/www/5130/node_modules
- /home/aweso/sam/docker/5130/nginx.conf:/etc/nginx/conf.d/default.conf
- /home/aweso/sam/docker/5130/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
- /home/aweso/sam/docker/5130/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
- DB_HOST=sam-mysql-1
- DB_PORT=3306
- DB_DATABASE=chandj
- DB_USERNAME=root
- DB_PASSWORD=root
- TZ=Asia/Seoul
networks:
- samnet
working_dir: /var/www/5130
mysql:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: samdb
MYSQL_USER: samuser
MYSQL_PASSWORD: sampass
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Seoul
command: --sql-mode="NO_ENGINE_SUBSTITUTION" --default-time-zone="+09:00" --default-authentication-plugin=mysql_native_password
volumes:
- db_data:/var/lib/mysql
- /home/aweso/sam/docker/mysql/init.sql:/docker-entrypoint-initdb.d/01-init.sql
# - /home/aweso/sam/chandj_dump.sql:/docker-entrypoint-initdb.d/02-chandj-dump.sql
ports:
- "3306:3306"
networks:
- samnet
phpmyadmin:
image: phpmyadmin:latest
restart: always
ports:
- "8080:80"
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_PORT=3306
- PMA_USER=root
- PMA_PASSWORD=root
- TZ=Asia/Seoul
depends_on:
- mysql
networks:
- samnet
volumes:
db_data:
# 의존성 디렉토리 분리 (성능 향상)
api_vendor:
api_node_modules:
mng_vendor:
mng_node_modules:
admin_vendor:
admin_node_modules:
sales_vendor:
sales_node_modules:
php73_vendor:
php73_node_modules:
networks:
samnet:
driver: bridge