274 lines
11 KiB
YAML
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
|
||
|
|
|