docker-compose.yml 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. version: "3.8"
  2. services:
  3. # MongoDB Database Service
  4. mongodb:
  5. image: mongo:latest
  6. container_name: oms-mongodb
  7. ports:
  8. - "27017:27017"
  9. volumes:
  10. - mongodb_data:/data/db # Persist MongoDB data
  11. environment:
  12. MONGO_INITDB_ROOT_USERNAME: oms
  13. MONGO_INITDB_ROOT_PASSWORD: "oms123." # 密码包含特殊字符,建议用引号
  14. restart: "no"
  15. # Redis Cache Service
  16. redis:
  17. image: redis:latest
  18. container_name: oms-redis
  19. ports:
  20. - "6379:6379"
  21. restart: "no"
  22. # RabbitMQ Message Broker
  23. rabbitmq:
  24. image: rabbitmq:3-management-alpine
  25. container_name: oms-rabbitmq
  26. ports:
  27. - "5672:5672" # AMQP 端口
  28. - "15672:15672" # 管理界面端口
  29. environment:
  30. RABBITMQ_DEFAULT_USER: coloring
  31. RABBITMQ_DEFAULT_PASS: coloring123.
  32. restart: "no"
  33. # ClickHouse Columnar Database for Analytics
  34. clickhouse:
  35. image: clickhouse/clickhouse-server:latest
  36. container_name: clickhouse
  37. ports:
  38. - "8123:8123" # HTTP 接口
  39. # - "9000:9000" # 原生 TCP 接口
  40. volumes:
  41. - clickhouse_data:/var/lib/clickhouse
  42. environment:
  43. CLICKHOUSE_DB: omsdb
  44. CLICKHOUSE_USER: ckuser
  45. CLICKHOUSE_PASSWORD: ckpassword
  46. restart: "no"
  47. # # Backend Service (OMS)
  48. # oms:
  49. # build:
  50. # context: ./oms # Build context is the 'oms' directory
  51. # dockerfile: Dockerfile
  52. # container_name: oms
  53. # ports:
  54. # - "3000:3000"
  55. # environment:
  56. # NODE_ENV: development
  57. # PORT: 3000
  58. # EVENT_PORT: 3001
  59. # MONGO_URI: mongodb://mongodb:27017/omsdb # Docker 内部使用服务名
  60. # REDIS_URI: redis://redis:6379
  61. # RABBITMQ_URL: amqp://coloring:coloring123.@rabbitmq:5672 # Docker 内部使用服务名
  62. # RABBITMQ_EXCHANGE: event_exchange
  63. # RABBITMQ_LOG_QUEUE: log_event_queue
  64. # RABBITMQ_OMS_QUEUE: oms-event-queue # <-- 新增:摄取器队列名
  65. # CLICKHOUSE_HOST: http://clickhouse:8123 # <-- 新增:ClickHouse Host
  66. # CLICKHOUSE_DATABASE: omsdb # <-- 新增:ClickHouse DB
  67. # CLICKHOUSE_USER: ckuser # <-- 新增:ClickHouse 用户
  68. # CLICKHOUSE_PASSWORD: ckpassword # <-- 新增:ClickHouse 密码
  69. # LOG_DIR: /app/logs/coloring # 日志服务容器内部路径
  70. # volumes:
  71. # # 开发调试阶段, 挂载整个 oms 目录,但 .dockerignore 会忽略 node_modules 和 omsapp
  72. # - ./:/usr/src/app
  73. # depends_on:
  74. # - mongodb
  75. # - redis
  76. # restart: "no" # 不自动重启,方便测试和重建
  77. # # Frontend Nginx Service (OMSApp)
  78. # omsapp-nginx:
  79. # build:
  80. # context: ./oms/omsapp # *** 关键变更:构建上下文现在是 ./oms/omsapp
  81. # dockerfile: Dockerfile
  82. # container_name: omsapp-nginx
  83. # ports:
  84. # - "80:80"
  85. # depends_on:
  86. # - oms # 确保后端服务先启动
  87. # restart: "no"
  88. # Define volumes for data persistence
  89. volumes:
  90. mongodb_data:
  91. clickhouse_data: