services: iotdb-standalone-service: image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.5-standalone hostname: iotdb-standalone container_name: iotdb-standalone restart: always deploy: resources: limits: cpus: "8" memory: 16g ports: - "${IOTDB_PORT}:6667" environment: - cn_internal_address=iotdb-standalone - cn_internal_port=10710 - cn_consensus_port=10720 - cn_seed_config_node=iotdb-standalone:10710 - dn_rpc_address=iotdb-standalone - dn_internal_address=iotdb-standalone - dn_rpc_port=6667 - dn_internal_port=10730 - dn_mpp_data_exchange_port=10740 - dn_schema_region_consensus_port=10750 - dn_data_region_consensus_port=10760 - dn_seed_config_node=iotdb-standalone:10710 privileged: true volumes: - ./iotdb/conf:/iotdb/conf - ./iotdb/data:/iotdb/data - ./iotdb/logs:/iotdb/logs networks: - pulsar-net redis-service: image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.0.2-alpine3.21 container_name: redis restart: always hostname: redis deploy: resources: limits: cpus: "1.0" memory: 1g ports: - "${REDIS_PORT}:6379" volumes: - ./redis/outdata:/data - ./redis/conf:/etc/redis/conf command: redis-server /etc/redis/conf/redis.conf stdin_open: true tty: true networks: - pulsar-net postgres-service: image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.1-alpine container_name: postgres hostname: postgres restart: unless-stopped ports: - "${POSTGRES_PORT:-5432}:5432" environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-JiShe!aqG#5kGgh&0} - POSTGRES_DB=${POSTGRES_DB:-jisheiotprodb} - POSTGRES_INITDB_ARGS=--encoding=UTF8 --lc-collate=C --lc-ctype=C - TZ=Asia/Shanghai volumes: - ./postgresql/data:/var/lib/postgresql/data - ./postgresql/init:/docker-entrypoint-initdb.d deploy: resources: limits: cpus: "2.0" memory: 2g networks: - pulsar-net healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 logging: driver: "json-file" options: max-size: "100m" max-file: "5" admin-api-service: image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.admin:2025.1216.1440 container_name: admin-api hostname: admin-api restart: always deploy: resources: limits: cpus: "2.0" memory: 4g ports: - "${ADMIN_API_PORT}:10500" volumes: - ./adminapi/conf:/app/configs - ./adminapi/logs:/app/logs stdin_open: true tty: true depends_on: postgres-service: condition: service_healthy redis-service: condition: service_started iotdb-standalone-service: condition: service_started networks: - pulsar-net admin-web-service: image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.ui:2025.1030.0949 container_name: admin-web hostname: admin-web restart: always deploy: resources: limits: cpus: "1.0" memory: 200mb ports: - "${ADMIN_WEB_PORT}:8080" stdin_open: true tty: true depends_on: admin-api-service: condition: service_started networks: - pulsar-net networks: pulsar-net: driver: bridge ipam: driver: default config: - subnet: 172.23.0.0/16 gateway: 172.23.0.1