Files
dockerSet/docker-compose.yml
2026-03-07 05:06:47 +08:00

274 lines
11 KiB
YAML

version: '3.8'
networks:
gitea-net:
driver: bridge
volumes:
mysql_data:
gitea_data:
jenkins_data:
mysql_oms_data:
mysql_triple_data:
services:
# ──────────────────────────────────────────
# MySQL 8.0 — Gitea/Jenkins용
# ──────────────────────────────────────────
mysql:
image: mysql:8.0
container_name: mysql
restart: always
networks:
- gitea-net
environment:
MYSQL_ROOT_PASSWORD: root1234!
MYSQL_DATABASE: gitea
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-proot1234!"]
interval: 10s
timeout: 5s
retries: 10
# ──────────────────────────────────────────
# MySQL 8.0 — omsDB
# ──────────────────────────────────────────
mysql-oms:
image: mysql:8.0
container_name: mysql-oms
restart: always
networks:
- gitea-net
ports:
- "3308:3306"
environment:
TZ: Asia/Seoul
MYSQL_ROOT_PASSWORD: root1234
MYSQL_DATABASE: omsDB
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
volumes:
- mysql_oms_data:/var/lib/mysql
- ./innodb8.cnf:/etc/mysql/conf.d/innodb.cnf:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-proot1234"]
interval: 10s
timeout: 5s
retries: 10
# ──────────────────────────────────────────
# MySQL 8.0 — triple_db
# ──────────────────────────────────────────
mysql-triple:
image: mysql:8.0
container_name: mysql-triple
restart: always
networks:
- gitea-net
ports:
- "3309:3306"
environment:
TZ: Asia/Seoul
MYSQL_ROOT_PASSWORD: root1234
MYSQL_DATABASE: triple_db
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
volumes:
- mysql_triple_data:/var/lib/mysql
- ./innodb8.cnf:/etc/mysql/conf.d/innodb.cnf:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-proot1234"]
interval: 10s
timeout: 5s
retries: 10
# ──────────────────────────────────────────
# Gitea
# ──────────────────────────────────────────
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
networks:
- gitea-net
depends_on:
mysql:
condition: service_healthy
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=mysql:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=root
- GITEA__database__PASSWD=root1234!
- GITEA__server__DOMAIN=git.gong-dev.com
- GITEA__server__SSH_DOMAIN=git.gong-dev.com
- GITEA__server__ROOT_URL=https://git.gong-dev.com/
- GITEA__server__HTTP_PORT=3000
volumes:
- gitea_data:/data
expose:
- "3000"
# ──────────────────────────────────────────
# Jenkins
# ──────────────────────────────────────────
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
user: root
restart: always
networks:
- gitea-net
volumes:
- jenkins_data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /opt/gitea-stack:/opt/gitea-stack
- /opt/docker-cli-plugins:/usr/local/lib/docker/cli-plugins
expose:
- "8080"
# ──────────────────────────────────────────
# Nginx (reverse proxy)
# ──────────────────────────────────────────
nginx:
image: nginx:alpine
container_name: nginx
restart: always
networks:
- gitea-net
depends_on:
- gitea
- jenkins
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
- /etc/ssl/origin-ca:/etc/ssl/origin-ca:ro
- /etc/ssl/acme:/etc/ssl/acme:ro
# ──────────────────────────────────────────
# pkcasino01 — 카지노 프론트엔드
# ──────────────────────────────────────────
pkcasino01:
image: pkcasino01:latest
container_name: pkcasino01
restart: always
networks:
- gitea-net
expose:
- "80"
# ──────────────────────────────────────────
# agent_oms — 에이전트 어드민 프론트엔드
# ──────────────────────────────────────────
agent-oms:
image: agent_oms:latest
container_name: agent-oms
restart: always
networks:
- gitea-net
expose:
- "80"
# ──────────────────────────────────────────
# first_vendor_panel — 벤더 패널 프론트엔드
# ──────────────────────────────────────────
first-vendor-panel:
image: first_vendor_panel:latest
container_name: first-vendor-panel
restart: always
networks:
- gitea-net
expose:
- "80"
# ──────────────────────────────────────────
# oms_api — OMS 백엔드 API
# ──────────────────────────────────────────
oms-api:
image: oms_api:latest
container_name: oms-api
restart: always
networks:
- gitea-net
depends_on:
mysql-oms:
condition: service_healthy
mysql-triple:
condition: service_healthy
volumes:
- /home/log/triple:/home/log/triple
expose:
- "8080"
environment:
- SPRING_DATASOURCE1_JDBC_URL=jdbc:mysql://mysql-oms:3306/omsDB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8&allowMultiQueries=true
- SPRING_DATASOURCE2_JDBC_URL=jdbc:mysql://mysql-oms:3306/omsDB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8&allowMultiQueries=true
- SPRING_DATASOURCE3_JDBC_URL=jdbc:mysql://mysql-triple:3306/triple_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8
- SPRING_DATASOURCE1_USERNAME=root
- SPRING_DATASOURCE1_PASSWORD=root1234
- SPRING_DATASOURCE2_USERNAME=root
- SPRING_DATASOURCE2_PASSWORD=root1234
- SPRING_DATASOURCE3_USERNAME=root
- SPRING_DATASOURCE3_PASSWORD=root1234
# ──────────────────────────────────────────
# first_vendor_api — Triple 벤더 API
# ──────────────────────────────────────────
first-vendor-api:
image: first_vendor_api:latest
container_name: first-vendor-api
restart: always
networks:
- gitea-net
depends_on:
mysql-triple:
condition: service_healthy
volumes:
- /home/log/triple:/home/log/triple
expose:
- "8080"
environment:
- SPRING_DATASOURCE1_JDBC_URL=jdbc:mysql://mysql-triple:3306/triple_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8
- SPRING_DATASOURCE2_JDBC_URL=jdbc:mysql://mysql-triple:3306/triple_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8
- SPRING_DATASOURCE1_USERNAME=root
- SPRING_DATASOURCE1_PASSWORD=root1234
- SPRING_DATASOURCE2_USERNAME=root
- SPRING_DATASOURCE2_PASSWORD=root1234
- SPRING_AUTOCONFIGURE_EXCLUDE=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration
# ──────────────────────────────────────────
# first_vendor_batch — Triple 배치 서버
# ──────────────────────────────────────────
first-vendor-batch:
image: first_vendor_batch:latest
container_name: first-vendor-batch
restart: always
networks:
- gitea-net
depends_on:
mysql-triple:
condition: service_healthy
volumes:
- /home/log/triple:/home/log/triple
expose:
- "8080"
environment:
- SPRING_DATASOURCE1_JDBC_URL=jdbc:mysql://mysql-triple:3306/triple_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8
- SPRING_DATASOURCE2_JDBC_URL=jdbc:mysql://mysql-triple:3306/triple_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&autoReconnect=true&useEncoding=true&characterEncoding=utf-8
- SPRING_DATASOURCE1_USERNAME=root
- SPRING_DATASOURCE1_PASSWORD=root1234
- SPRING_DATASOURCE2_USERNAME=root
- SPRING_DATASOURCE2_PASSWORD=root1234
- SPRING_AUTOCONFIGURE_EXCLUDE=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration