智慧水务管理系统 - 精河县供水工程综合管理平台

docker-compose.yml 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. version: '3.8'
  2. services:
  3. # Zookeeper - Kafka依赖
  4. zookeeper:
  5. image: confluentinc/cp-zookeeper:7.4.0
  6. container_name: etl-zookeeper
  7. environment:
  8. ZOOKEEPER_CLIENT_PORT: 2181
  9. ZOOKEEPER_TICK_TIME: 2000
  10. ports:
  11. - "2181:2181"
  12. volumes:
  13. - zookeeper-data:/var/lib/zookeeper/data
  14. - zookeeper-log:/var/lib/zookeeper/log
  15. networks:
  16. - etl-network
  17. # Kafka - 消息队列
  18. kafka:
  19. image: confluentinc/cp-kafka:7.4.0
  20. container_name: etl-kafka
  21. depends_on:
  22. - zookeeper
  23. ports:
  24. - "9092:9092"
  25. - "29092:29092"
  26. environment:
  27. KAFKA_BROKER_ID: 1
  28. KAFKA_ZOOKEEPER_CONNECT: etl-zookeeper:2181
  29. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://etl-kafka:9092,PLAINTEXT_HOST://localhost:29092
  30. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
  31. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  32. KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
  33. KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
  34. volumes:
  35. - kafka-data:/var/lib/kafka/data
  36. networks:
  37. - etl-network
  38. # MySQL - 数据库
  39. mysql:
  40. image: mysql:8.0.33
  41. container_name: etl-mysql
  42. environment:
  43. MYSQL_ROOT_PASSWORD: water123
  44. MYSQL_DATABASE: water_etl
  45. MYSQL_USER: etl_user
  46. MYSQL_PASSWORD: etl_password
  47. ports:
  48. - "3306:3306"
  49. volumes:
  50. - mysql-data:/var/lib/mysql
  51. - ./src/main/resources/schema.sql:/docker-entrypoint-initdb.d/schema.sql
  52. networks:
  53. - etl-network
  54. command: --default-authentication-plugin=mysql_native_password
  55. # Redis - 缓存
  56. redis:
  57. image: redis:7-alpine
  58. container_name: etl-redis
  59. ports:
  60. - "6379:6379"
  61. volumes:
  62. - redis-data:/data
  63. networks:
  64. - etl-network
  65. # ETL应用
  66. etl-app:
  67. build: .
  68. container_name: etl-application
  69. depends_on:
  70. - mysql
  71. - kafka
  72. - redis
  73. ports:
  74. - "8080:8080"
  75. environment:
  76. SPRING_PROFILES_ACTIVE: docker
  77. SPRING_DATASOURCE_URL: jdbc:mysql://etl-mysql:3306/water_etl?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
  78. SPRING_DATASOURCE_USERNAME: etl_user
  79. SPRING_DATASOURCE_PASSWORD: etl_password
  80. SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.cj.jdbc.Driver
  81. KAFKA_BOOTSTRAP_SERVERS: etl-kafka:9092
  82. volumes:
  83. - ./logs:/app/logs
  84. - ./run_etl.sh:/app/run_etl.sh
  85. working_dir: /app
  86. networks:
  87. - etl-network
  88. entrypoint: ["/app/run_etl.sh", "start"]
  89. volumes:
  90. zookeeper-data:
  91. zookeeper-log:
  92. kafka-data:
  93. mysql-data:
  94. redis-data:
  95. networks:
  96. etl-network:
  97. driver: bridge