174 lines
5.7 KiB
YAML
174 lines
5.7 KiB
YAML
name: abc-user-feedback-deploy
|
|
|
|
services:
|
|
web:
|
|
build:
|
|
context: ..
|
|
dockerfile: docker/web.dockerfile
|
|
environment:
|
|
NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL}
|
|
INTERNAL_API_BASE_URL: http://api:4000
|
|
SUPPORT_API_BASE_URL: http://secretary-api:8010
|
|
SECRETARY_ABC_API_KEY: ${SECRETARY_ABC_API_KEY:-}
|
|
ports:
|
|
- '${WEB_PORT:-3030}:3000'
|
|
depends_on:
|
|
api:
|
|
condition: service_started
|
|
secretary-api:
|
|
condition: service_started
|
|
restart: unless-stopped
|
|
|
|
api:
|
|
build:
|
|
context: ..
|
|
dockerfile: docker/api.dockerfile
|
|
environment:
|
|
APP_ADDRESS: 0.0.0.0
|
|
APP_PORT: 4000
|
|
ADMIN_WEB_URL: ${ADMIN_WEB_URL}
|
|
BASE_URL: ${BASE_URL}
|
|
JWT_SECRET: ${JWT_SECRET}
|
|
INITIAL_SUPER_ADMIN_PHONE_NUMBER: ${INITIAL_SUPER_ADMIN_PHONE_NUMBER:-}
|
|
ADMIN_CANDIDATE_EMAILS: ${ADMIN_CANDIDATE_EMAILS:-}
|
|
GITEA_API_URL: ${GITEA_API_URL:-https://gitea.hmac.kr/api/v1}
|
|
GITEA_API_TOKEN: ${GITEA_API_TOKEN:-}
|
|
GITHUB_API_TOKEN: ${GITHUB_API_TOKEN:-}
|
|
JIRA_API_EMAIL: ${JIRA_API_EMAIL:-}
|
|
JIRA_API_TOKEN: ${JIRA_API_TOKEN:-}
|
|
JIRA_WEBHOOK_SECRET: ${JIRA_WEBHOOK_SECRET:-}
|
|
JIRA_ISSUE_TYPE: ${JIRA_ISSUE_TYPE:-Task}
|
|
MYSQL_PRIMARY_URL: mysql://userfeedback:userfeedback@mysql:3306/userfeedback
|
|
SMTP_ENABLED: ${SMTP_ENABLED:-false}
|
|
SMTP_HOST: ${SMTP_HOST:-}
|
|
SMTP_PORT: ${SMTP_PORT:-25}
|
|
SMTP_SENDER: ${SMTP_SENDER:-}
|
|
SMTP_USERNAME: ${SMTP_USERNAME:-}
|
|
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
|
|
SMTP_TLS: ${SMTP_TLS:-false}
|
|
SMTP_CIPHER_SPEC: ${SMTP_CIPHER_SPEC:-}
|
|
SMTP_OPPORTUNISTIC_TLS: ${SMTP_OPPORTUNISTIC_TLS:-false}
|
|
MASTER_API_KEY: ${MASTER_API_KEY:-}
|
|
SUPPORT_API_BASE_URL: http://secretary-api:8010
|
|
ACCESS_TOKEN_EXPIRED_TIME: ${ACCESS_TOKEN_EXPIRED_TIME:-10m}
|
|
REFRESH_TOKEN_EXPIRED_TIME: ${REFRESH_TOKEN_EXPIRED_TIME:-1h}
|
|
AUTO_MIGRATION: ${AUTO_MIGRATION:-true}
|
|
OPENSEARCH_USE: ${OPENSEARCH_USE:-false}
|
|
OPENSEARCH_NODE: ${OPENSEARCH_NODE:-}
|
|
OPENSEARCH_USERNAME: ${OPENSEARCH_USERNAME:-}
|
|
OPENSEARCH_PASSWORD: ${OPENSEARCH_PASSWORD:-}
|
|
NAVER_WORKS_ENABLED: ${NAVER_WORKS_ENABLED:-false}
|
|
NAVER_WORKS_API_BASE_URL: ${NAVER_WORKS_API_BASE_URL:-https://www.worksapis.com/v1.0}
|
|
NAVER_WORKS_AUTH_URL: ${NAVER_WORKS_AUTH_URL:-https://auth.worksmobile.com/oauth2/v2.0/token}
|
|
NAVER_WORKS_ACCESS_TOKEN: ${NAVER_WORKS_ACCESS_TOKEN:-}
|
|
NAVER_WORKS_BOT_ID: ${NAVER_WORKS_BOT_ID:-}
|
|
NAVER_WORKS_DEFAULT_ROOM_ID: ${NAVER_WORKS_DEFAULT_ROOM_ID:-}
|
|
NAVER_WORKS_CLIENT_ID: ${NAVER_WORKS_CLIENT_ID:-}
|
|
NAVER_WORKS_CLIENT_SECRET: ${NAVER_WORKS_CLIENT_SECRET:-}
|
|
NAVER_WORKS_SERVICE_ACCOUNT: ${NAVER_WORKS_SERVICE_ACCOUNT:-}
|
|
NAVER_WORKS_PRIVATE_KEY: ${NAVER_WORKS_PRIVATE_KEY:-}
|
|
NAVER_WORKS_SCOPE: ${NAVER_WORKS_SCOPE:-bot.message bot}
|
|
NAVER_WORKS_MAX_RETRIES: ${NAVER_WORKS_MAX_RETRIES:-3}
|
|
NAVER_WORKS_MAX_MESSAGE_LENGTH: ${NAVER_WORKS_MAX_MESSAGE_LENGTH:-1000}
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
secretary-api:
|
|
build:
|
|
context: ..
|
|
dockerfile: docker/secretary-api.dockerfile
|
|
environment:
|
|
APP_NAME: secretary-api
|
|
APP_ENV: ${APP_ENV:-staging}
|
|
APP_HOST: 0.0.0.0
|
|
APP_PORT: 8010
|
|
DOCS_ROOT_PATH: /secretary-docs
|
|
DATABASE_URL: mysql+pymysql://baron_support:baron_support@mysql-secretary:3306/baron_support
|
|
ABC_API_BASE_URL: http://api:4000
|
|
ABC_API_KEY: ${SECRETARY_ABC_API_KEY:-}
|
|
MASTER_API_KEY: ${MASTER_API_KEY:-}
|
|
ADMIN_CANDIDATE_TENANT_ID: ${ADMIN_CANDIDATE_TENANT_ID:-}
|
|
INITIAL_SUPER_ADMIN_PHONE_NUMBER: ${INITIAL_SUPER_ADMIN_PHONE_NUMBER:-}
|
|
SSO_ISSUER: ${SSO_ISSUER:-}
|
|
SSO_CLIENT_ID: ${SSO_CLIENT_ID:-}
|
|
SSO_CLIENT_SECRET: ${SSO_CLIENT_SECRET:-}
|
|
JWT_SECRET: ${JWT_SECRET}
|
|
UPLOAD_ROOT_DIR: /app/uploads
|
|
UPLOAD_MAX_FILE_SIZE_MB: ${UPLOAD_MAX_FILE_SIZE_MB:-30}
|
|
depends_on:
|
|
api:
|
|
condition: service_started
|
|
mysql-secretary:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ../uploads:/app/uploads
|
|
restart: unless-stopped
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
command:
|
|
[
|
|
'--default-authentication-plugin=mysql_native_password',
|
|
'--collation-server=utf8mb4_bin',
|
|
]
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: userfeedback
|
|
MYSQL_DATABASE: userfeedback
|
|
MYSQL_USER: userfeedback
|
|
MYSQL_PASSWORD: userfeedback
|
|
TZ: UTC
|
|
# 스테이징 외부 DB 접속용 포트입니다.
|
|
ports:
|
|
- '${MYSQL_PORT:-13306}:3306'
|
|
healthcheck:
|
|
test:
|
|
[
|
|
'CMD-SHELL',
|
|
'mysqladmin ping -h 127.0.0.1 -u root -p$$MYSQL_ROOT_PASSWORD --silent',
|
|
]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
start_period: 15s
|
|
volumes:
|
|
- mysql:/var/lib/mysql
|
|
restart: unless-stopped
|
|
|
|
mysql-secretary:
|
|
hostname: mysql-secretary
|
|
image: mysql:8.0
|
|
command:
|
|
[
|
|
'--default-authentication-plugin=mysql_native_password',
|
|
'--collation-server=utf8mb4_bin',
|
|
'--default-time-zone=+09:00',
|
|
]
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: baron_support
|
|
MYSQL_DATABASE: baron_support
|
|
MYSQL_USER: baron_support
|
|
MYSQL_PASSWORD: baron_support
|
|
TZ: Asia/Seoul
|
|
# 스테이징 외부 DB 접속용 포트입니다.
|
|
ports:
|
|
- '${MYSQL_SECRETARY_PORT:-13308}:3306'
|
|
healthcheck:
|
|
test:
|
|
[
|
|
'CMD-SHELL',
|
|
'mysqladmin ping -h 127.0.0.1 -u root -p$$MYSQL_ROOT_PASSWORD --silent',
|
|
]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
start_period: 15s
|
|
volumes:
|
|
- mysql-secretary:/var/lib/mysql
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
mysql:
|
|
mysql-secretary:
|