2026-10-07 11:02:47 +08:00
|
|
|
|
name: firstleg-${DEPLOY_ENV:-test}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
|
|
|
|
|
x-common: &common
|
2026-09-09 14:26:34 +08:00
|
|
|
|
restart: "on-failure:3"
|
2026-09-20 20:50:32 +08:00
|
|
|
|
stop_grace_period: ${STOP_GRACE_PERIOD:-45s}
|
2026-07-30 22:07:34 +08:00
|
|
|
|
networks: [firstleg-network, infra-network]
|
2026-07-30 23:11:16 +08:00
|
|
|
|
# 测试机复用宿主机的 MySQL、Redis、Nacos 时,容器通过此别名访问宿主机。
|
|
|
|
|
|
extra_hosts:
|
|
|
|
|
|
- "host.docker.internal:host-gateway"
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment: &common-environment
|
2026-10-07 11:02:47 +08:00
|
|
|
|
DEPLOY_ENV: ${DEPLOY_ENV:-test}
|
2026-09-20 20:50:32 +08:00
|
|
|
|
BAIYUE_RELEASE_ID: ${RELEASE_ID:-local}
|
2026-09-20 21:16:15 +08:00
|
|
|
|
BAIYUE_RUNTIME_SCHEDULING_ENABLED: ${BAIYUE_RUNTIME_SCHEDULING_ENABLED:-true}
|
2026-09-20 20:50:32 +08:00
|
|
|
|
SERVER_SHUTDOWN: graceful
|
|
|
|
|
|
SPRING_LIFECYCLE_TIMEOUT_PER_SHUTDOWN_PHASE: ${SHUTDOWN_PHASE_TIMEOUT:-30s}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
SPRING_PROFILES_ACTIVE: ${DEPLOY_ENV:-test}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
NACOS_SERVER_ADDR: ${NACOS_SERVER_ADDR}
|
|
|
|
|
|
NACOS_USERNAME: ${NACOS_USERNAME}
|
|
|
|
|
|
NACOS_PASSWORD: ${NACOS_PASSWORD}
|
|
|
|
|
|
NACOS_GROUP: ${NACOS_GROUP:-BAIYUE}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
NACOS_NAMESPACE: ${NACOS_NAMESPACE:?actual environment namespace ID required}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
REDIS_HOST: ${REDIS_HOST}
|
|
|
|
|
|
REDIS_PORT: ${REDIS_PORT:-6379}
|
|
|
|
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
2026-09-29 18:47:37 +08:00
|
|
|
|
REDIS_USERNAME: ${REDIS_USERNAME:-default}
|
|
|
|
|
|
SPRING_DATA_REDIS_USERNAME: ${REDIS_USERNAME:-default}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
REDIS_DATABASE: ${REDIS_DATABASE:-0}
|
2026-09-29 18:47:37 +08:00
|
|
|
|
AUTH_SESSION_VALIDATION_URL: http://auth:9100/internal/auth/accounts/sessions/validate
|
|
|
|
|
|
JWT_ISSUER: ${JWT_ISSUER:-auth-service}
|
|
|
|
|
|
JWT_AUDIENCE: ${JWT_AUDIENCE:-lastleg-api}
|
|
|
|
|
|
JWT_JWKS_URI: http://auth:9100/api/auth/.well-known/jwks.json
|
|
|
|
|
|
REDIS_TOKEN_KEY_PREFIX: ${REDIS_TOKEN_KEY_PREFIX:-baiyue:auth}
|
|
|
|
|
|
SPRING_SQL_INIT_MODE: never
|
|
|
|
|
|
ROCKETMQ_NAME_SERVER: ${ROCKETMQ_NAME_SERVER}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
MQ_TOPIC_PREFIX: ${MQ_TOPIC_PREFIX:-test-}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
INTERNAL_SERVICE_TOKEN: ${INTERNAL_SERVICE_TOKEN}
|
2026-09-29 18:47:37 +08:00
|
|
|
|
BAIYUE_AUDIT_ENDPOINT: http://audit-service:9700/internal/audit/events
|
2026-08-10 12:07:03 +08:00
|
|
|
|
SERVER_MAX_HTTP_REQUEST_HEADER_SIZE: ${SERVER_MAX_HTTP_REQUEST_HEADER_SIZE:-32KB}
|
2026-08-05 14:20:04 +08:00
|
|
|
|
AUDIT_OUTBOX_ENABLED: ${AUDIT_OUTBOX_ENABLED:-false}
|
|
|
|
|
|
AUDIT_OUTBOX_PUBLISHER_ENABLED: ${AUDIT_OUTBOX_PUBLISHER_ENABLED:-false}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
TZ: Asia/Shanghai
|
|
|
|
|
|
logging:
|
2026-09-02 15:39:58 +08:00
|
|
|
|
# 应用只写 stdout/stderr;json-file 兼容宝塔查看,大小与数量均受控。
|
|
|
|
|
|
driver: ${DOCKER_LOG_DRIVER:-json-file}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
options:
|
2026-09-02 15:14:24 +08:00
|
|
|
|
max-size: ${DOCKER_LOG_MAX_SIZE:-50m}
|
|
|
|
|
|
max-file: "${DOCKER_LOG_MAX_FILE:-3}"
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
gateway:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/gateway:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-gateway
|
2026-09-29 18:47:37 +08:00
|
|
|
|
ports: ["${PUBLISHED_BIND_ADDRESS:-127.0.0.1}:${GATEWAY_PUBLISHED_PORT:-${GATEWAY_PORT:-9000}}:9000"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9000
|
2026-10-07 11:02:47 +08:00
|
|
|
|
SPRING_PROFILES_ACTIVE: ${DEPLOY_ENV:-test},cn
|
2026-07-30 18:16:57 +08:00
|
|
|
|
SWAGGER_ENABLED: ${SWAGGER_ENABLED:-false}
|
|
|
|
|
|
CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS}
|
|
|
|
|
|
CORS_ALLOW_CREDENTIALS: ${CORS_ALLOW_CREDENTIALS:-false}
|
|
|
|
|
|
|
|
|
|
|
|
auth:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/auth:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-auth
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9100"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9100
|
2026-09-29 18:47:37 +08:00
|
|
|
|
JWT_RSA_JWK_SET: ${JWT_RSA_JWK_SET}
|
|
|
|
|
|
JWT_CURRENT_KID: ${JWT_CURRENT_KID}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
AUTH_DB_URL: ${AUTH_DB_URL}
|
|
|
|
|
|
AUTH_DB_USERNAME: ${AUTH_DB_USERNAME}
|
|
|
|
|
|
AUTH_DB_PASSWORD: ${AUTH_DB_PASSWORD}
|
|
|
|
|
|
|
|
|
|
|
|
iam:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/iam:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-iam
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9201"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9201
|
2026-09-29 18:47:37 +08:00
|
|
|
|
NOTIFICATION_SCHEDULER_ENABLED: ${NOTIFICATION_SCHEDULER_ENABLED:-false}
|
|
|
|
|
|
NOTIFICATION_MQ_CONSUMER_ENABLED: ${NOTIFICATION_MQ_CONSUMER_ENABLED:-false}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
IAM_DB_URL: ${IAM_DB_URL}
|
|
|
|
|
|
IAM_DB_USERNAME: ${IAM_DB_USERNAME}
|
|
|
|
|
|
IAM_DB_PASSWORD: ${IAM_DB_PASSWORD}
|
|
|
|
|
|
|
|
|
|
|
|
firstleg:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/firstleg:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-business
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9202"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9202
|
2026-09-29 18:47:37 +08:00
|
|
|
|
EVENT_CONNECT_TIMEOUT_MS: ${EVENT_CONNECT_TIMEOUT_MS:-3000}
|
|
|
|
|
|
EVENT_READ_TIMEOUT_MS: ${EVENT_READ_TIMEOUT_MS:-15000}
|
|
|
|
|
|
EVENT_LEASE_SECONDS: ${EVENT_LEASE_SECONDS:-60}
|
|
|
|
|
|
EVENT_MAX_ATTEMPTS: ${EVENT_MAX_ATTEMPTS:-12}
|
|
|
|
|
|
EVENT_BASE_DELAY_SECONDS: ${EVENT_BASE_DELAY_SECONDS:-5}
|
|
|
|
|
|
EVENT_MAX_DELAY_SECONDS: ${EVENT_MAX_DELAY_SECONDS:-1800}
|
|
|
|
|
|
EVENT_JITTER: ${EVENT_JITTER:-0.1}
|
|
|
|
|
|
EVENT_OPERATIONS_TOKEN: ${EVENT_OPERATIONS_TOKEN:-}
|
|
|
|
|
|
LASTLEG_SERVICE_URL: http://lastleg-service:9303
|
|
|
|
|
|
FIRSTLEG_SERVICE_URL: http://firstleg:9202
|
|
|
|
|
|
FINANCE_SERVICE_URL: http://finance:9203
|
2026-07-30 18:16:57 +08:00
|
|
|
|
FIRSTLEG_DB_URL: ${FIRSTLEG_DB_URL}
|
|
|
|
|
|
FIRSTLEG_DB_USERNAME: ${FIRSTLEG_DB_USERNAME}
|
|
|
|
|
|
FIRSTLEG_DB_PASSWORD: ${FIRSTLEG_DB_PASSWORD}
|
2026-08-21 16:04:16 +08:00
|
|
|
|
MATSON_TRACKING_ENABLED: ${MATSON_TRACKING_ENABLED:-false}
|
|
|
|
|
|
SML_TRACKING_ENABLED: ${SML_TRACKING_ENABLED:-false}
|
|
|
|
|
|
ZIM_TRACKING_ENABLED: ${ZIM_TRACKING_ENABLED:-false}
|
|
|
|
|
|
COSCO_OPEN_API_ENABLED: ${COSCO_OPEN_API_ENABLED:-false}
|
|
|
|
|
|
EMC_TRACKING_ENABLED: ${EMC_TRACKING_ENABLED:-false}
|
|
|
|
|
|
HEDE_TRACKING_ENABLED: ${HEDE_TRACKING_ENABLED:-false}
|
2026-09-04 16:23:38 +08:00
|
|
|
|
CARRIER_SCHEDULE_SCHEDULER_ENABLED: ${CARRIER_SCHEDULE_SCHEDULER_ENABLED:-false}
|
2026-08-21 16:15:02 +08:00
|
|
|
|
CARRIER_SCHEDULE_ZONE: ${CARRIER_SCHEDULE_ZONE:-Asia/Shanghai}
|
2026-08-21 17:05:52 +08:00
|
|
|
|
CARRIER_SCHEDULE_SCAN_FIXED_DELAY: ${CARRIER_SCHEDULE_SCAN_FIXED_DELAY:-PT1M}
|
|
|
|
|
|
CARRIER_SCHEDULE_SCAN_INITIAL_DELAY: ${CARRIER_SCHEDULE_SCAN_INITIAL_DELAY:-PT10S}
|
2026-08-21 16:15:02 +08:00
|
|
|
|
CARRIER_SCHEDULE_BATCH_SIZE: ${CARRIER_SCHEDULE_BATCH_SIZE:-20}
|
|
|
|
|
|
CARRIER_SCHEDULE_MAX_TASKS_PER_TRIGGER: ${CARRIER_SCHEDULE_MAX_TASKS_PER_TRIGGER:-2000}
|
|
|
|
|
|
CARRIER_SCHEDULE_LEASE_DURATION: ${CARRIER_SCHEDULE_LEASE_DURATION:-PT5M}
|
2026-09-09 18:29:42 +08:00
|
|
|
|
TERMINAL_DRAYAGE_MAIL_ENABLED: ${TERMINAL_DRAYAGE_MAIL_ENABLED:-false}
|
|
|
|
|
|
TERMINAL_DRAYAGE_MAIL_HOST: ${TERMINAL_DRAYAGE_MAIL_HOST:-}
|
|
|
|
|
|
TERMINAL_DRAYAGE_MAIL_PORT: ${TERMINAL_DRAYAGE_MAIL_PORT:-587}
|
|
|
|
|
|
TERMINAL_DRAYAGE_MAIL_USERNAME: ${TERMINAL_DRAYAGE_MAIL_USERNAME:-}
|
|
|
|
|
|
TERMINAL_DRAYAGE_MAIL_PASSWORD: ${TERMINAL_DRAYAGE_MAIL_PASSWORD:-}
|
|
|
|
|
|
TERMINAL_DRAYAGE_MAIL_SSL: ${TERMINAL_DRAYAGE_MAIL_SSL:-false}
|
|
|
|
|
|
TERMINAL_DRAYAGE_MAIL_SCAN_DELAY: ${TERMINAL_DRAYAGE_MAIL_SCAN_DELAY:-10000}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
2026-08-11 20:39:28 +08:00
|
|
|
|
finance:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/finance:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-finance
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9203"]
|
2026-08-11 20:39:28 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9203
|
2026-09-29 18:47:37 +08:00
|
|
|
|
EVENT_CONNECT_TIMEOUT_MS: ${EVENT_CONNECT_TIMEOUT_MS:-3000}
|
|
|
|
|
|
EVENT_READ_TIMEOUT_MS: ${EVENT_READ_TIMEOUT_MS:-15000}
|
|
|
|
|
|
EVENT_LEASE_SECONDS: ${EVENT_LEASE_SECONDS:-60}
|
|
|
|
|
|
EVENT_MAX_ATTEMPTS: ${EVENT_MAX_ATTEMPTS:-12}
|
|
|
|
|
|
EVENT_BASE_DELAY_SECONDS: ${EVENT_BASE_DELAY_SECONDS:-5}
|
|
|
|
|
|
EVENT_MAX_DELAY_SECONDS: ${EVENT_MAX_DELAY_SECONDS:-1800}
|
|
|
|
|
|
EVENT_JITTER: ${EVENT_JITTER:-0.1}
|
|
|
|
|
|
EVENT_OPERATIONS_TOKEN: ${EVENT_OPERATIONS_TOKEN:-}
|
|
|
|
|
|
LASTLEG_SERVICE_URL: http://lastleg-service:9303
|
|
|
|
|
|
FIRSTLEG_SERVICE_URL: http://firstleg:9202
|
|
|
|
|
|
FINANCE_SERVICE_URL: http://finance:9203
|
2026-08-11 20:39:28 +08:00
|
|
|
|
FINANCE_DB_URL: ${FINANCE_DB_URL}
|
|
|
|
|
|
FINANCE_DB_USERNAME: ${FINANCE_DB_USERNAME}
|
|
|
|
|
|
FINANCE_DB_PASSWORD: ${FINANCE_DB_PASSWORD}
|
|
|
|
|
|
|
2026-07-30 18:16:57 +08:00
|
|
|
|
order:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/order:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-order
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9204"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9204
|
|
|
|
|
|
ORDER_DB_URL: ${ORDER_DB_URL}
|
|
|
|
|
|
ORDER_DB_USERNAME: ${ORDER_DB_USERNAME}
|
|
|
|
|
|
ORDER_DB_PASSWORD: ${ORDER_DB_PASSWORD}
|
|
|
|
|
|
|
|
|
|
|
|
warehouse:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/warehouse:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-warehouse
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9205"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9205
|
|
|
|
|
|
WAREHOUSE_DB_URL: ${WAREHOUSE_DB_URL}
|
|
|
|
|
|
WAREHOUSE_DB_USERNAME: ${WAREHOUSE_DB_USERNAME}
|
|
|
|
|
|
WAREHOUSE_DB_PASSWORD: ${WAREHOUSE_DB_PASSWORD}
|
|
|
|
|
|
|
|
|
|
|
|
file:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/file:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-file
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9206"]
|
2026-07-31 16:53:07 +08:00
|
|
|
|
volumes:
|
2026-07-31 17:13:10 +08:00
|
|
|
|
- "${FILE_UPLOADS_HOST_DIR:-/data/firstleg/uploads}:/data/files"
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9206
|
|
|
|
|
|
FILE_DB_URL: ${FILE_DB_URL}
|
|
|
|
|
|
FILE_DB_USERNAME: ${FILE_DB_USERNAME}
|
|
|
|
|
|
FILE_DB_PASSWORD: ${FILE_DB_PASSWORD}
|
|
|
|
|
|
FILE_STORAGE_ROOT: /data/files
|
2026-09-20 15:03:24 +08:00
|
|
|
|
PDA_UPDATE_PUBLIC_BASE_URL: ${PDA_UPDATE_PUBLIC_BASE_URL:-}
|
2026-08-04 09:05:28 +08:00
|
|
|
|
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx2g -XX:+ExitOnOutOfMemoryError -Dfile.encoding=UTF-8"
|
2026-08-04 09:11:07 +08:00
|
|
|
|
# Compose 会插值整份文件,即使只部署 auth 等其他服务;File 的必填校验由 deploy-services.sh 按服务执行。
|
2026-08-04 09:05:28 +08:00
|
|
|
|
FILE_EXPORT_CONSUMER_ENABLED: ${FILE_EXPORT_CONSUMER_ENABLED:-false}
|
|
|
|
|
|
FILE_EXPORT_CONSUMER_CONCURRENCY: ${FILE_EXPORT_CONSUMER_CONCURRENCY:-4}
|
|
|
|
|
|
FILE_EXPORT_PUBLISHER_ENABLED: ${FILE_EXPORT_PUBLISHER_ENABLED:-false}
|
|
|
|
|
|
FILE_EXPORT_RECONCILER_ENABLED: ${FILE_EXPORT_RECONCILER_ENABLED:-false}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
|
|
|
|
|
print:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/print:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-print
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9207"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9207
|
2026-08-04 18:54:22 +08:00
|
|
|
|
JAVA_TOOL_OPTIONS: "-Xms512m -Xmx1g -XX:+ExitOnOutOfMemoryError -Dfile.encoding=UTF-8"
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
|
|
|
|
|
integration-service:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/integration-service:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-integration
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9210"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9210
|
2026-10-12 20:27:35 +08:00
|
|
|
|
LINGXING_WMS_ENABLED: ${LINGXING_WMS_ENABLED:-false}
|
|
|
|
|
|
LINGXING_COLLECTION_MODE: ${SELFOP_COLLECTION_MODE:-OFF}
|
|
|
|
|
|
LINGXING_ENVIRONMENT_LABEL: ${DEPLOY_ENV:-test}
|
|
|
|
|
|
LINGXING_SOURCE_ACCOUNT: ${SELFOP_SOURCE_ACCOUNT:-lingxing-primary}
|
|
|
|
|
|
LINGXING_OMS_APP_KEY: ${LINGXING_OMS_APP_KEY:-}
|
|
|
|
|
|
LINGXING_OMS_APP_SECRET: ${LINGXING_OMS_APP_SECRET:-}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
BAIDU_OCR_ENABLED: ${BAIDU_OCR_ENABLED:-false}
|
|
|
|
|
|
BAIDU_OCR_API_KEY: ${BAIDU_OCR_API_KEY:-}
|
|
|
|
|
|
BAIDU_OCR_SECRET_KEY: ${BAIDU_OCR_SECRET_KEY:-}
|
|
|
|
|
|
AMAZON_SP_API_ENABLED: ${AMAZON_SP_API_ENABLED:-false}
|
|
|
|
|
|
AMAZON_SP_API_CLIENT_ID: ${AMAZON_SP_API_CLIENT_ID:-}
|
|
|
|
|
|
AMAZON_SP_API_CLIENT_SECRET: ${AMAZON_SP_API_CLIENT_SECRET:-}
|
|
|
|
|
|
AMAZON_SP_API_REFRESH_TOKEN: ${AMAZON_SP_API_REFRESH_TOKEN:-}
|
|
|
|
|
|
AMAZON_SP_API_AWS_ACCESS_KEY: ${AMAZON_SP_API_AWS_ACCESS_KEY:-}
|
|
|
|
|
|
AMAZON_SP_API_AWS_SECRET_KEY: ${AMAZON_SP_API_AWS_SECRET_KEY:-}
|
|
|
|
|
|
AMAZON_SP_API_REGION: ${AMAZON_SP_API_REGION:-}
|
2026-08-21 16:04:16 +08:00
|
|
|
|
MATSON_TRACKING_ENABLED: ${MATSON_TRACKING_ENABLED:-false}
|
|
|
|
|
|
MATSON_TRACKING_PAGE_URL: ${MATSON_TRACKING_PAGE_URL:-https://www.matson.com/shipment-tracking.html}
|
|
|
|
|
|
MATSON_TRACKING_QUERY_URL: ${MATSON_TRACKING_QUERY_URL:-https://www.matson.com/wp-content/plugins/matson-plugin/Api_calls/tracking_booking_proxy.php}
|
|
|
|
|
|
MATSON_TRACKING_CONNECT_TIMEOUT: ${MATSON_TRACKING_CONNECT_TIMEOUT:-10s}
|
|
|
|
|
|
MATSON_TRACKING_REQUEST_TIMEOUT: ${MATSON_TRACKING_REQUEST_TIMEOUT:-30s}
|
|
|
|
|
|
MATSON_TRACKING_MIN_REQUEST_INTERVAL: ${MATSON_TRACKING_MIN_REQUEST_INTERVAL:-5s}
|
|
|
|
|
|
SML_TRACKING_ENABLED: ${SML_TRACKING_ENABLED:-false}
|
|
|
|
|
|
SML_TRACKING_QUERY_URL: ${SML_TRACKING_QUERY_URL:-https://esvc.smlines.com/smline/CUP_HOM_3301GS.do}
|
|
|
|
|
|
SML_TRACKING_CONNECT_TIMEOUT: ${SML_TRACKING_CONNECT_TIMEOUT:-10s}
|
|
|
|
|
|
SML_TRACKING_REQUEST_TIMEOUT: ${SML_TRACKING_REQUEST_TIMEOUT:-30s}
|
|
|
|
|
|
SML_TRACKING_MIN_REQUEST_INTERVAL: ${SML_TRACKING_MIN_REQUEST_INTERVAL:-5s}
|
|
|
|
|
|
ZIM_TRACKING_ENABLED: ${ZIM_TRACKING_ENABLED:-false}
|
|
|
|
|
|
ZIM_AUTHORIZATION_URL: ${ZIM_AUTHORIZATION_URL:-https://apigw.zim.com/authorize/v1}
|
|
|
|
|
|
ZIM_TRACING_BASE_URL: ${ZIM_TRACING_BASE_URL:-https://apigw.zim.com/tracing/v2}
|
|
|
|
|
|
ZIM_CLIENT_ID: ${ZIM_CLIENT_ID:-}
|
|
|
|
|
|
ZIM_CLIENT_SECRET: ${ZIM_CLIENT_SECRET:-}
|
|
|
|
|
|
ZIM_TRACKING_SUBSCRIPTION_KEY: ${ZIM_TRACKING_SUBSCRIPTION_KEY:-}
|
|
|
|
|
|
ZIM_TRACKING_CONNECT_TIMEOUT: ${ZIM_TRACKING_CONNECT_TIMEOUT:-10s}
|
|
|
|
|
|
ZIM_TRACKING_REQUEST_TIMEOUT: ${ZIM_TRACKING_REQUEST_TIMEOUT:-30s}
|
|
|
|
|
|
ZIM_TRACKING_MAX_CONCURRENCY: ${ZIM_TRACKING_MAX_CONCURRENCY:-10}
|
|
|
|
|
|
EMC_TRACKING_ENABLED: ${EMC_TRACKING_ENABLED:-false}
|
|
|
|
|
|
EMC_TRACKING_QUERY_URL: ${EMC_TRACKING_QUERY_URL:-https://www.evergreen-shipping.cn/servlet/TDB1_CargoTracking.do}
|
|
|
|
|
|
EMC_TRACKING_CONNECT_TIMEOUT: ${EMC_TRACKING_CONNECT_TIMEOUT:-10s}
|
|
|
|
|
|
EMC_TRACKING_REQUEST_TIMEOUT: ${EMC_TRACKING_REQUEST_TIMEOUT:-30s}
|
|
|
|
|
|
EMC_TRACKING_MIN_REQUEST_INTERVAL: ${EMC_TRACKING_MIN_REQUEST_INTERVAL:-5s}
|
|
|
|
|
|
HEDE_TRACKING_ENABLED: ${HEDE_TRACKING_ENABLED:-false}
|
|
|
|
|
|
HEDE_TRACKING_QUERY_URL: ${HEDE_TRACKING_QUERY_URL:-http://elines.hedehk.com/getVBilldynamic}
|
|
|
|
|
|
HEDE_TRACKING_CONNECT_TIMEOUT: ${HEDE_TRACKING_CONNECT_TIMEOUT:-10s}
|
|
|
|
|
|
HEDE_TRACKING_REQUEST_TIMEOUT: ${HEDE_TRACKING_REQUEST_TIMEOUT:-30s}
|
|
|
|
|
|
HEDE_TRACKING_MIN_REQUEST_INTERVAL: ${HEDE_TRACKING_MIN_REQUEST_INTERVAL:-5s}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
|
|
|
|
|
audit-service:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/audit-service:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-audit
|
2026-07-31 11:06:36 +08:00
|
|
|
|
expose: ["9700"]
|
2026-07-30 18:16:57 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9700
|
|
|
|
|
|
AUDIT_DB_URL: ${AUDIT_DB_URL}
|
|
|
|
|
|
AUDIT_DB_USERNAME: ${AUDIT_DB_USERNAME}
|
|
|
|
|
|
AUDIT_DB_PASSWORD: ${AUDIT_DB_PASSWORD}
|
2026-08-05 14:20:04 +08:00
|
|
|
|
AUDIT_MQ_CONSUMER_ENABLED: ${AUDIT_MQ_CONSUMER_ENABLED:-false}
|
|
|
|
|
|
AUDIT_DLQ_CONSUMER_ENABLED: ${AUDIT_DLQ_CONSUMER_ENABLED:-false}
|
|
|
|
|
|
AUDIT_DLQ_COMPENSATION_ENABLED: ${AUDIT_DLQ_COMPENSATION_ENABLED:-false}
|
2026-07-30 18:16:57 +08:00
|
|
|
|
|
2026-09-29 18:47:37 +08:00
|
|
|
|
lastleg-service:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/lastleg-service:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-lastleg
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9303"]
|
|
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9303
|
2026-10-12 20:27:35 +08:00
|
|
|
|
SELFOP_EXECUTION_ENABLED: ${SELFOP_EXECUTION_ENABLED:-false}
|
|
|
|
|
|
SELFOP_COLLECTION_MODE: ${SELFOP_COLLECTION_MODE:-OFF}
|
|
|
|
|
|
SELFOP_SOURCE_ACCOUNT: ${SELFOP_SOURCE_ACCOUNT:-lingxing-primary}
|
|
|
|
|
|
SELFOP_DAILY_REQUEST_BUDGET: ${SELFOP_DAILY_REQUEST_BUDGET:-0}
|
|
|
|
|
|
SELFOP_MIN_REQUEST_INTERVAL_MS: ${SELFOP_MIN_REQUEST_INTERVAL_MS:-5000}
|
|
|
|
|
|
SELFOP_SALES_PUBLICATION_ENABLED: ${SELFOP_SALES_PUBLICATION_ENABLED:-false}
|
2026-09-29 18:47:37 +08:00
|
|
|
|
EVENT_CONNECT_TIMEOUT_MS: ${EVENT_CONNECT_TIMEOUT_MS:-3000}
|
|
|
|
|
|
EVENT_READ_TIMEOUT_MS: ${EVENT_READ_TIMEOUT_MS:-15000}
|
|
|
|
|
|
EVENT_LEASE_SECONDS: ${EVENT_LEASE_SECONDS:-60}
|
|
|
|
|
|
EVENT_MAX_ATTEMPTS: ${EVENT_MAX_ATTEMPTS:-12}
|
|
|
|
|
|
EVENT_BASE_DELAY_SECONDS: ${EVENT_BASE_DELAY_SECONDS:-5}
|
|
|
|
|
|
EVENT_MAX_DELAY_SECONDS: ${EVENT_MAX_DELAY_SECONDS:-1800}
|
|
|
|
|
|
EVENT_JITTER: ${EVENT_JITTER:-0.1}
|
|
|
|
|
|
EVENT_OPERATIONS_TOKEN: ${EVENT_OPERATIONS_TOKEN:-}
|
|
|
|
|
|
LASTLEG_SERVICE_URL: http://lastleg-service:9303
|
|
|
|
|
|
FIRSTLEG_SERVICE_URL: http://firstleg:9202
|
|
|
|
|
|
FINANCE_SERVICE_URL: http://finance:9203
|
|
|
|
|
|
LASTLEG_DB_URL: ${LASTLEG_DB_URL}
|
|
|
|
|
|
LASTLEG_DB_USERNAME: ${LASTLEG_DB_USERNAME}
|
|
|
|
|
|
LASTLEG_DB_PASSWORD: ${LASTLEG_DB_PASSWORD}
|
|
|
|
|
|
DOMESTIC_WAREHOUSE_URL: ${DOMESTIC_WAREHOUSE_URL:-http://warehouse:9205}
|
|
|
|
|
|
FILE_SERVICE_URL: ${FILE_SERVICE_URL:-http://file:9206}
|
|
|
|
|
|
PRINT_SERVICE_URL: ${PRINT_SERVICE_URL:-http://print:9207}
|
|
|
|
|
|
WAREHOUSE_OVERSEAS_SERVICE_URL: ${WAREHOUSE_OVERSEAS_SERVICE_URL:-http://warehouse-overseas-service:9305}
|
|
|
|
|
|
|
|
|
|
|
|
warehouse-overseas-service:
|
|
|
|
|
|
<<: *common
|
|
|
|
|
|
image: ${IMAGE_REPOSITORY}/warehouse-overseas-service:${IMAGE_TAG}
|
2026-10-07 11:02:47 +08:00
|
|
|
|
container_name: firstleg-${DEPLOY_ENV:-test}-warehouse-overseas
|
2026-09-29 18:47:37 +08:00
|
|
|
|
expose: ["9305"]
|
|
|
|
|
|
environment:
|
|
|
|
|
|
<<: *common-environment
|
|
|
|
|
|
SERVER_PORT: 9305
|
|
|
|
|
|
WAREHOUSE_DB_URL: ${WAREHOUSE_OVERSEAS_DB_URL}
|
|
|
|
|
|
WAREHOUSE_DB_USERNAME: ${WAREHOUSE_OVERSEAS_DB_USERNAME}
|
|
|
|
|
|
WAREHOUSE_DB_PASSWORD: ${WAREHOUSE_OVERSEAS_DB_PASSWORD}
|
|
|
|
|
|
DOMESTIC_WAREHOUSE_URL: ${DOMESTIC_WAREHOUSE_URL}
|
|
|
|
|
|
PRINT_SERVICE_URL: ${PRINT_SERVICE_URL:-http://print:9207}
|
|
|
|
|
|
|
2026-07-30 18:16:57 +08:00
|
|
|
|
networks:
|
|
|
|
|
|
firstleg-network:
|
2026-10-07 11:02:47 +08:00
|
|
|
|
name: firstleg-${DEPLOY_ENV:-test}-network
|
2026-07-30 22:07:34 +08:00
|
|
|
|
infra-network:
|
|
|
|
|
|
external: true
|
2026-10-07 11:02:47 +08:00
|
|
|
|
name: ${INFRA_NETWORK:-firstleg-${DEPLOY_ENV:-test}-infra-network}
|