mirror of
https://fast.feibisi.com/https://github.com/parcelvoy/platform.git
synced 2025-08-28 11:46:02 +08:00
189 lines
6.5 KiB
YAML
189 lines
6.5 KiB
YAML
version: '3.4'
|
|
services:
|
|
mysql:
|
|
image: mysql:8.0.36
|
|
platform: linux/x86_64
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
|
|
expose:
|
|
- 3306
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", 'mysqladmin', 'ping', '-h', 'localhost', '-u', 'root', '-p$$MYSQL_ROOT_PASSWORD' ]
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 30
|
|
redis:
|
|
image: redis
|
|
expose:
|
|
- "6379"
|
|
restart: always
|
|
volumes:
|
|
- redis_data:/data
|
|
api:
|
|
platform: linux/x86_64
|
|
image: "ghcr.io/parcelvoy/api:${IMAGE_VERSION:-latest}"
|
|
restart: always
|
|
healthcheck:
|
|
test: wget --no-verbose --tries=1 --spider http://localhost:3001/api/health || exit 1
|
|
interval: 5s
|
|
retries: 30
|
|
start_period: 20s
|
|
timeout: 10s
|
|
ports:
|
|
- 3001:3001
|
|
links:
|
|
- mysql:mysql
|
|
- redis:redis
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
environment:
|
|
NODE_ENV: ${NODE_ENV}
|
|
BASE_URL: ${BASE_URL}
|
|
RUNNER: 'api'
|
|
APP_SECRET: ${APP_SECRET}
|
|
PORT: 3001
|
|
LOG_LEVEL: ${LOG_LEVEL:-info}
|
|
LOG_COMPILED_MESSAGE: ${LOG_COMPILED_MESSAGE:-true}
|
|
DB_CLIENT: ${DB_CLIENT}
|
|
DB_HOST: mysql
|
|
DB_USERNAME: ${DB_USERNAME}
|
|
DB_PASSWORD: ${DB_PASSWORD}
|
|
DB_PORT: ${DB_PORT}
|
|
DB_DATABASE: ${DB_DATABASE}
|
|
STORAGE_DRIVER: ${STORAGE_DRIVER}
|
|
STORAGE_BASE_URL: ${STORAGE_BASE_URL}
|
|
STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET}
|
|
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
|
|
STORAGE_S3_FORCE_PATH_STYLE: ${STORAGE_S3_FORCE_PATH_STYLE}
|
|
AWS_S3_BUCKET: ${AWS_S3_BUCKET}
|
|
QUEUE_DRIVER: ${QUEUE_DRIVER}
|
|
REDIS_HOST: ${REDIS_HOST}
|
|
REDIS_PORT: ${REDIS_PORT}
|
|
REDIS_TLS: ${REDIS_TLS}
|
|
REDIS_CONCURRENCY: ${REDIS_CONCURRENCY}
|
|
REDIS_USERNAME: ${REDIS_USERNAME}
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
AWS_SQS_QUEUE_URL: ${AWS_SQS_QUEUE_URL}
|
|
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
|
AWS_REGION: ${AWS_REGION}
|
|
AUTH_DRIVER: ${AUTH_DRIVER}
|
|
AUTH_BASIC_EMAIL: ${AUTH_BASIC_EMAIL}
|
|
AUTH_BASIC_PASSWORD: ${AUTH_BASIC_PASSWORD}
|
|
AUTH_BASIC_NAME: ${AUTH_BASIC_NAME}
|
|
AUTH_SAML_CALLBACK_URL: ${AUTH_SAML_CALLBACK_URL}
|
|
AUTH_SAML_ENTRY_POINT_URL: ${AUTH_SAML_ENTRY_POINT_URL}
|
|
AUTH_SAML_ISSUER: ${AUTH_SAML_ISSUER}
|
|
AUTH_SAML_CERT: ${AUTH_SAML_CERT}
|
|
AUTH_SAML_IS_AUTHN_SIGNED: ${AUTH_SAML_IS_AUTHN_SIGNED}
|
|
AUTH_SAML_NAME: ${AUTH_SAML_NAME}
|
|
AUTH_OPENID_ISSUER_URL: ${AUTH_OPENID_ISSUER_URL}
|
|
AUTH_OPENID_CLIENT_ID: ${AUTH_OPENID_CLIENT_ID}
|
|
AUTH_OPENID_CLIENT_SECRET: ${AUTH_OPENID_CLIENT_SECRET}
|
|
AUTH_OPENID_REDIRECT_URI: ${AUTH_OPENID_REDIRECT_URI}
|
|
AUTH_OPENID_DOMAIN_WHITELIST: ${AUTH_OPENID_DOMAIN_WHITELIST}
|
|
AUTH_OPENID_RESPONSE_TYPES: ${AUTH_OPENID_RESPONSE_TYPES}
|
|
AUTH_OPENID_NAME: ${AUTH_OPENID_NAME}
|
|
AUTH_GOOGLE_ISSUER_URL: ${AUTH_GOOGLE_ISSUER_URL}
|
|
AUTH_GOOGLE_CLIENT_ID: ${AUTH_GOOGLE_CLIENT_ID}
|
|
AUTH_GOOGLE_CLIENT_SECRET: ${AUTH_GOOGLE_CLIENT_SECRET}
|
|
AUTH_GOOGLE_NAME: ${AUTH_GOOGLE_NAME}
|
|
ERROR_DRIVER: ${ERROR_DRIVER}
|
|
ERROR_BUGSNAG_API_KEY: ${ERROR_BUGSNAG_API_KEY}
|
|
ERROR_SENTRY_DSN: ${ERROR_SENTRY_DSN}
|
|
TRACKING_LINK_WRAP: ${TRACKING_LINK_WRAP}
|
|
TRACKING_DEEPLINK_MIRROR_URL: ${TRACKING_DEEPLINK_MIRROR_URL}
|
|
volumes:
|
|
- uploads:/usr/src/app/public/uploads
|
|
worker:
|
|
platform: linux/x86_64
|
|
image: "ghcr.io/parcelvoy/api:${IMAGE_VERSION:-latest}"
|
|
restart: always
|
|
links:
|
|
- mysql:mysql
|
|
- redis:redis
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
api:
|
|
condition: service_healthy
|
|
environment:
|
|
NODE_ENV: ${NODE_ENV}
|
|
BASE_URL: ${BASE_URL}
|
|
RUNNER: 'worker'
|
|
APP_SECRET: ${APP_SECRET}
|
|
LOG_LEVEL: ${LOG_LEVEL:-info}
|
|
LOG_COMPILED_MESSAGE: ${LOG_COMPILED_MESSAGE:-true}
|
|
DB_CLIENT: ${DB_CLIENT}
|
|
DB_HOST: mysql
|
|
DB_USERNAME: ${DB_USERNAME}
|
|
DB_PASSWORD: ${DB_PASSWORD}
|
|
DB_PORT: ${DB_PORT}
|
|
DB_DATABASE: ${DB_DATABASE}
|
|
STORAGE_DRIVER: ${STORAGE_DRIVER}
|
|
STORAGE_BASE_URL: ${STORAGE_BASE_URL}
|
|
STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET}
|
|
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
|
|
STORAGE_S3_FORCE_PATH_STYLE: ${STORAGE_S3_FORCE_PATH_STYLE}
|
|
AWS_S3_BUCKET: ${AWS_S3_BUCKET}
|
|
QUEUE_DRIVER: ${QUEUE_DRIVER}
|
|
REDIS_HOST: ${REDIS_HOST}
|
|
REDIS_PORT: ${REDIS_PORT}
|
|
REDIS_TLS: ${REDIS_TLS}
|
|
REDIS_CONCURRENCY: ${REDIS_CONCURRENCY}
|
|
REDIS_USERNAME: ${REDIS_USERNAME}
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
AWS_SQS_QUEUE_URL: ${AWS_SQS_QUEUE_URL}
|
|
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
|
AWS_REGION: ${AWS_REGION}
|
|
AUTH_DRIVER: ${AUTH_DRIVER}
|
|
AUTH_BASIC_EMAIL: ${AUTH_BASIC_EMAIL}
|
|
AUTH_BASIC_PASSWORD: ${AUTH_BASIC_PASSWORD}
|
|
AUTH_BASIC_NAME: ${AUTH_BASIC_NAME}
|
|
AUTH_SAML_CALLBACK_URL: ${AUTH_SAML_CALLBACK_URL}
|
|
AUTH_SAML_ENTRY_POINT_URL: ${AUTH_SAML_ENTRY_POINT_URL}
|
|
AUTH_SAML_ISSUER: ${AUTH_SAML_ISSUER}
|
|
AUTH_SAML_CERT: ${AUTH_SAML_CERT}
|
|
AUTH_SAML_IS_AUTHN_SIGNED: ${AUTH_SAML_IS_AUTHN_SIGNED}
|
|
AUTH_SAML_NAME: ${AUTH_SAML_NAME}
|
|
AUTH_OPENID_ISSUER_URL: ${AUTH_OPENID_ISSUER_URL}
|
|
AUTH_OPENID_CLIENT_ID: ${AUTH_OPENID_CLIENT_ID}
|
|
AUTH_OPENID_CLIENT_SECRET: ${AUTH_OPENID_CLIENT_SECRET}
|
|
AUTH_OPENID_REDIRECT_URI: ${AUTH_OPENID_REDIRECT_URI}
|
|
AUTH_OPENID_DOMAIN_WHITELIST: ${AUTH_OPENID_DOMAIN_WHITELIST}
|
|
AUTH_OPENID_NAME: ${AUTH_OPENID_NAME}
|
|
AUTH_GOOGLE_ISSUER_URL: ${AUTH_GOOGLE_ISSUER_URL}
|
|
AUTH_GOOGLE_CLIENT_ID: ${AUTH_GOOGLE_CLIENT_ID}
|
|
AUTH_GOOGLE_CLIENT_SECRET: ${AUTH_GOOGLE_CLIENT_SECRET}
|
|
AUTH_GOOGLE_NAME: ${AUTH_GOOGLE_NAME}
|
|
ERROR_DRIVER: ${ERROR_DRIVER}
|
|
ERROR_BUGSNAG_API_KEY: ${ERROR_BUGSNAG_API_KEY}
|
|
ERROR_SENTRY_DSN: ${ERROR_SENTRY_DSN}
|
|
TRACKING_LINK_WRAP: ${TRACKING_LINK_WRAP}
|
|
TRACKING_DEEPLINK_MIRROR_URL: ${TRACKING_DEEPLINK_MIRROR_URL}
|
|
ui:
|
|
platform: linux/x86_64
|
|
image: "ghcr.io/parcelvoy/ui:${PARCELVOY_VERSION:-latest}"
|
|
depends_on:
|
|
api:
|
|
condition: service_healthy
|
|
environment:
|
|
API_BASE_URL: ${API_BASE_URL}
|
|
ports:
|
|
- ${UI_PORT}:3000
|
|
volumes:
|
|
mysql_data:
|
|
driver: local
|
|
redis_data:
|
|
driver: local
|
|
uploads:
|
|
driver: local
|