feat: 적용 무중단 배포 시스템 (Blue-Green Deployment)
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 51s

This commit is contained in:
jade
2026-07-24 08:51:01 +09:00
parent 60a7226199
commit 8b11c1aae8
8 changed files with 489 additions and 80 deletions

View File

@@ -11,12 +11,59 @@ services:
timeout: 3s
retries: 5
gateway:
mci-mock:
image: wiremock/wiremock:latest
ports:
- "8089:8080"
volumes:
- ./mci-mock:/home/wiremock
dozzle:
image: amir20/dozzle:latest
ports:
- "8288:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/ubuntu/app/ax_hub_mcp_tool:/app
restart: always
gitea-runner:
image: gitea/act_runner:latest
environment:
- GITEA_INSTANCE_URL=https://git.devjun.net
- GITEA_RUNNER_REGISTRATION_TOKEN=2N7ciuFIp6Jm29ewtzfl9ruQtpwGgB4ngFcXC2lF
- GITEA_RUNNER_NAME=ociwp-runner
- GLOW_COMMUNICATION_EXTMCI_PORT=8080
- GITEA_RUNNER_LABELS=ubuntu-latest,ubuntu-22.04,linux-arm64
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/ubuntu/app/ax_hub_mcp_tool:/app
- ./act_runner_data:/data
- ./bin/docker:/usr/bin/docker
- /usr/libexec/docker/cli-plugins/docker-compose:/usr/libexec/docker/cli-plugins/docker-compose
restart: always
nginx:
image: nginx:latest
ports:
- "8281:8281"
- "8282:8282"
- "8283:8283"
- "8284:8284"
- "8285:8285"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
depends_on:
redis:
condition: service_healthy
# ==========================================
# BLUE SERVICES
# ==========================================
gateway-blue:
build:
context: .
dockerfile: dap-gateway/Dockerfile
ports:
- "8281:8081"
volumes:
- ./:/src
depends_on:
@@ -32,19 +79,10 @@ services:
- JAVA_TOOL_OPTIONS=-Xms64m -Xmx384m
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
mci-mock:
image: wiremock/wiremock:latest
ports:
- "8089:8080"
volumes:
- ./mci-mock:/home/wiremock
tool-sms:
tool-sms-blue:
build:
context: .
dockerfile: dap-tool-sms/Dockerfile
ports:
- "8282:8082"
depends_on:
- redis
environment:
@@ -52,9 +90,9 @@ services:
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway:8081
- AXHUB_GATEWAY_URL=http://gateway-blue:8081
- AXHUB_SOURCE_DIR=/src
- AXHUB_TOOL_URL=http://tool-sms:8082
- AXHUB_TOOL_URL=http://tool-sms-blue:8082
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
@@ -63,12 +101,10 @@ services:
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
tool-email:
tool-email-blue:
build:
context: .
dockerfile: dap-tool-email/Dockerfile
ports:
- "8283:8083"
depends_on:
- redis
environment:
@@ -76,8 +112,8 @@ services:
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway:8081
- AXHUB_TOOL_URL=http://tool-email:8083
- AXHUB_GATEWAY_URL=http://gateway-blue:8081
- AXHUB_TOOL_URL=http://tool-email-blue:8083
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
@@ -86,12 +122,10 @@ services:
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
tool-other:
tool-other-blue:
build:
context: .
dockerfile: dap-tool-other/Dockerfile
ports:
- "8284:8084"
depends_on:
- redis
environment:
@@ -99,8 +133,8 @@ services:
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway:8081
- AXHUB_TOOL_URL=http://tool-other:8084
- AXHUB_GATEWAY_URL=http://gateway-blue:8081
- AXHUB_TOOL_URL=http://tool-other-blue:8084
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
@@ -109,12 +143,10 @@ services:
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
tool-payment:
tool-payment-blue:
build:
context: .
dockerfile: dap-tool-payment/Dockerfile
ports:
- "8285:8085"
depends_on:
- redis
environment:
@@ -122,8 +154,8 @@ services:
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway:8081
- AXHUB_TOOL_URL=http://tool-payment:8085
- AXHUB_GATEWAY_URL=http://gateway-blue:8081
- AXHUB_TOOL_URL=http://tool-payment-blue:8085
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
@@ -132,28 +164,109 @@ services:
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
dozzle:
image: amir20/dozzle:latest
ports:
- "8288:8080"
# ==========================================
# GREEN SERVICES
# ==========================================
gateway-green:
build:
context: .
dockerfile: dap-gateway/Dockerfile
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/ubuntu/app/ax_hub_mcp_tool:/app
restart: always
gitea-runner:
image: gitea/act_runner:latest
- ./:/src
depends_on:
redis:
condition: service_healthy
environment:
- GITEA_INSTANCE_URL=https://git.devjun.net
- TZ=Asia/Seoul
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_HOST=redis
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_SOURCE_DIR=/src
- JAVA_TOOL_OPTIONS=-Xms64m -Xmx384m
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
- GITEA_RUNNER_REGISTRATION_TOKEN=2N7ciuFIp6Jm29ewtzfl9ruQtpwGgB4ngFcXC2lF
- GITEA_RUNNER_NAME=ociwp-runner
tool-sms-green:
build:
context: .
dockerfile: dap-tool-sms/Dockerfile
depends_on:
- redis
environment:
- TZ=Asia/Seoul
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway-green:8081
- AXHUB_SOURCE_DIR=/src
- AXHUB_TOOL_URL=http://tool-sms-green:8082
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EXTMCI_PORT=8080
- GITEA_RUNNER_LABELS=ubuntu-latest,ubuntu-22.04,linux-arm64
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/ubuntu/app/ax_hub_mcp_tool:/app
- ./act_runner_data:/data
- ./bin/docker:/usr/bin/docker
- /usr/libexec/docker/cli-plugins/docker-compose:/usr/libexec/docker/cli-plugins/docker-compose
restart: always
- GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
tool-email-green:
build:
context: .
dockerfile: dap-tool-email/Dockerfile
depends_on:
- redis
environment:
- TZ=Asia/Seoul
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway-green:8081
- AXHUB_TOOL_URL=http://tool-email-green:8083
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EXTMCI_PORT=8080
- GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
tool-other-green:
build:
context: .
dockerfile: dap-tool-other/Dockerfile
depends_on:
- redis
environment:
- TZ=Asia/Seoul
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway-green:8081
- AXHUB_TOOL_URL=http://tool-other-green:8084
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EXTMCI_PORT=8080
- GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}
tool-payment-green:
build:
context: .
dockerfile: dap-tool-payment/Dockerfile
depends_on:
- redis
environment:
- TZ=Asia/Seoul
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway-green:8081
- AXHUB_TOOL_URL=http://tool-payment-green:8085
- GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_MCI_PORT=8080
- GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EXTMCI_PORT=8080
- GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock
- GLOW_COMMUNICATION_EAI_PORT=8080
- SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local}