version: '2'
services:
  redis:
    image: redis:5.0.4
    container_name: jetlinks-ce-redis
    #    ports:
    #      - "6379:6379"
    volumes:
      - "redis-volume:/data"
    command: redis-server --appendonly yes
    environment:
      - TZ=Asia/Shanghai
  elasticsearch:
    image: elasticsearch:6.8.6
    container_name: jetlinks-ce-elasticsearch
    environment:
      ES_JAVA_OPTS: -Djava.net.preferIPv4Stack=true -Xms1g -Xmx1g
      transport.host: 0.0.0.0
      discovery.type: single-node
      bootstrap.memory_lock: "true"
      discovery.zen.minimum_master_nodes: 1
      discovery.zen.ping.unicast.hosts: elasticsearch
    volumes:
      - elasticsearch-volume:/usr/share/elasticsearch/data
  #    ports:
  #      - "9200:9200"
  #      - "9300:9300"
  kibana:
    image: kibana:6.8.6
    container_name: jetlinks-ce-kibana
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
    links:
      - elasticsearch:elasticsearch
    ports:
      - "5602:5601"
    depends_on:
      - elasticsearch
  postgres:
    image: postgres:11-alpine
    container_name: jetlinks-ce-postgres
    volumes:
      - "postgres-volume:/var/lib/postgresql/data"
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: jetlinks
      POSTGRES_DB: jetlinks
      TZ: Asia/Shanghai
  ui:
    image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-antd:1.1.1-RELEASE
    container_name: jetlinks-ce-ui
    ports:
      - 9000:80
    environment:
      - "API_BASE_PATH=http://jetlinks:8848/" #API根路径
    volumes:
      - "jetlinks-volume:/usr/share/nginx/html/upload"
    links:
      - jetlinks:jetlinks
  jetlinks:
    image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-standalone:1.2-SNAPSHOT
    container_name: jetlinks-ce
    ports:
      - 8848:8848 # API端口
      - 1883:1883 # MQTT端口
      - 8000:8000 # 预留
      - 8001:8001 # 预留
      - 8002:8002 # 预留
    volumes:
      - "jetlinks-volume:/static/upload"  # 持久化上传的文件
    environment:
     # - "JAVA_OPTS=-Xms4g -Xmx18g -XX:+UseG1GC"
      - "hsweb.file.upload.static-location=http://127.0.0.1:8848/upload"  #上传的静态文件访问根地址,为ui的地址.
      - "spring.r2dbc.url=r2dbc:postgresql://postgres:5432/jetlinks" #数据库连接地址
      - "spring.r2dbc.username=postgres"
      - "spring.r2dbc.password=jetlinks"
      - "elasticsearch.client.host=elasticsearch"
      - "elasticsearch.client.post=9200"
      - "spring.redis.host=redis"
      - "spring.redis.port=6379"
      - "logging.level.io.r2dbc=warn"
      - "logging.level.org.springframework.data=warn"
      - "logging.level.org.springframework=warn"
      - "logging.level.org.jetlinks=warn"
      - "logging.level.org.hswebframework=warn"
      - "logging.level.org.springframework.data.r2dbc.connectionfactory=warn"
    links:
      - redis:redis
      - postgres:postgres
      - elasticsearch:elasticsearch
    depends_on:
      - postgres
      - redis
      - elasticsearch
volumes:
  postgres-volume:
  redis-volume:
  elasticsearch-volume:
  jetlinks-volume: