You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.5 KiB

services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: chajia
ports:
# 宿主机 3306 常被本机 MySQL 占用,默认映射到 3307
- "${MYSQL_HOST_PORT:-3307}:3306"
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 10
next-app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
DATABASE_URL: mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/chajia
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
HOST_SERVICE_TOKENS: ${HOST_SERVICE_TOKENS}
NODE_ENV: production
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
rpa-worker:
build:
context: .
dockerfile: Dockerfile.worker
environment:
DATABASE_URL: mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/chajia
REDIS_URL: redis://redis:6379
MOTHERSHIP_EMAIL: ${MOTHERSHIP_EMAIL}
MOTHERSHIP_PASSWORD: ${MOTHERSHIP_PASSWORD}
MOTHERSHIP_QUOTE_URLS: ${MOTHERSHIP_QUOTE_URLS}
RPA_STORAGE_STATE_PATH: ${RPA_STORAGE_STATE_PATH:-.rpa/mothership-storage.json}
RPA_MOCK_MODE: ${RPA_MOCK_MODE:-false}
RPA_HEADLESS: ${RPA_HEADLESS:-true}
RPA_USE_PATCHRIGHT: ${RPA_USE_PATCHRIGHT:-false}
RPA_WORKER_ID: ${RPA_WORKER_ID:-}
RPA_SELECTOR_PICKUP_STREET: ${RPA_SELECTOR_PICKUP_STREET:-}
RPA_SELECTOR_DELIVERY_STREET: ${RPA_SELECTOR_DELIVERY_STREET:-}
RPA_SELECTOR_ADDRESS_SUGGESTION: ${RPA_SELECTOR_ADDRESS_SUGGESTION:-}
RPA_SELECTOR_SUBMIT: ${RPA_SELECTOR_SUBMIT:-}
RPA_SELECTOR_STANDARD_TAB: ${RPA_SELECTOR_STANDARD_TAB:-}
RPA_SELECTOR_GUARANTEED_TAB: ${RPA_SELECTOR_GUARANTEED_TAB:-}
RPA_SELECTOR_LOWEST_OPTION: ${RPA_SELECTOR_LOWEST_OPTION:-}
RPA_SELECTOR_FASTEST_OPTION: ${RPA_SELECTOR_FASTEST_OPTION:-}
RPA_SELECTOR_PRICE: ${RPA_SELECTOR_PRICE:-}
volumes:
- rpa_state:/app/.rpa
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
shm_size: "1gb"
volumes:
mysql_data:
redis_data:
rpa_state: