platform/docker-compose.yml

190 lines
6.5 KiB
YAML
Raw Permalink Normal View History

version: '3.4'
services:
mysql:
2024-04-12 22:39:55 -05:00
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}
2023-03-07 08:38:21 -06:00
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}
2023-03-25 14:22:59 -05:00
DB_PORT: ${DB_PORT}
DB_DATABASE: ${DB_DATABASE}
STORAGE_DRIVER: ${STORAGE_DRIVER}
STORAGE_BASE_URL: ${STORAGE_BASE_URL}
2024-01-15 09:25:05 -06:00
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}
2025-01-04 09:23:57 -06:00
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}
2023-03-07 08:11:24 -06:00
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_REGION: ${AWS_REGION}
AUTH_DRIVER: ${AUTH_DRIVER}
2023-03-25 14:22:59 -05:00
AUTH_BASIC_EMAIL: ${AUTH_BASIC_EMAIL}
AUTH_BASIC_PASSWORD: ${AUTH_BASIC_PASSWORD}
2023-08-19 16:33:05 -07:00
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}
2023-08-19 16:33:05 -07:00
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}
2024-09-27 22:35:10 -05:00
AUTH_OPENID_RESPONSE_TYPES: ${AUTH_OPENID_RESPONSE_TYPES}
2023-08-19 16:33:05 -07:00
AUTH_OPENID_NAME: ${AUTH_OPENID_NAME}
2023-08-23 15:12:18 -07:00
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}
2023-04-06 10:54:27 -04:00
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}
2023-03-07 08:38:21 -06:00
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:
2023-06-25 14:52:01 -05:00
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}
2024-01-15 09:25:05 -06:00
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}
2025-01-04 09:23:57 -06:00
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}
2023-08-19 16:33:05 -07:00
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}
2023-08-19 16:33:05 -07:00
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}
2023-08-19 16:33:05 -07:00
AUTH_OPENID_NAME: ${AUTH_OPENID_NAME}
2023-08-23 15:12:18 -07:00
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}
2023-04-06 10:54:27 -04:00
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:
2023-03-25 14:53:55 -05:00
- ${UI_PORT}:3000
volumes:
mysql_data:
2023-03-07 08:38:21 -06:00
driver: local
redis_data:
driver: local
2023-03-07 08:38:21 -06:00
uploads:
driver: local