前端部署

环境要求

  • nodeJs v12.xx
  • npm v6.xx
  1. 获取源代码 ``` $ git clone https://github.com/jetlinks/jetlinks-ui-antd.git
  1. 2. 使用npm打包,并将打包后的文件复制到项目的docker目录下(命令在项目根目录下执行)

npm install npm run-script build cp -r dist docker/

  1. ### 使用docker部署前端
  2. 1. 构建docker镜像

docker build -t docker build -t registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-antd ./docker

  1. 2. 运行docker镜像

docker run -it —rm -p 9000:80 -e “API_BASE_PATH=http://xxx:8848/“ registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-antd

  1. ::: tip 注意<br />
  2. 环境变量`API_BASE_PATH`为后台API根地址. docker容器内进行自动代理. 请根据自己的系统环境配置环境变量: `API_BASE_PATH`<br />
  3. :::
  4. ### 使用nginx部署
  5. 1. 复制`dist`目录下到文件到`/usr/share/nginx/html`
  6. 1. 添加nginx配置文件
  7. nginx配置参考:

server { listen 80;

  1. # gzip config
  2. gzip on;
  3. gzip_min_length 1k;
  4. gzip_comp_level 9;
  5. gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
  6. gzip_vary on;
  7. gzip_disable "MSIE [1-6]\.";
  8. root /usr/share/nginx/html;
  9. include /etc/nginx/mime.types;
  10. location / {
  11. index index.html;
  12. }
  13. location ^~/jetlinks/ {
  14. proxy_pass http://jetlinks:8844/; #修改此地址为后台服务地址
  15. proxy_set_header X-Forwarded-Proto $scheme;
  16. proxy_set_header Host $host:$server_port;
  17. proxy_set_header X-Real-IP $remote_addr;
  18. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  19. proxy_http_version 1.1;
  20. proxy_set_header Upgrade $http_upgrade;
  21. proxy_set_header Connection "upgrade";
  22. proxy_connect_timeout 1;
  23. proxy_buffering off;
  24. chunked_transfer_encoding off;
  25. proxy_cache off;
  26. proxy_send_timeout 30m;
  27. proxy_read_timeout 30m;
  28. client_max_body_size 100m;
  29. }

}

  1. ## 后端部署
  2. ### 使用docker部署后端
  3. 1. 使用maven命令将项目打包<br />
  4. 在代码根目录执行:

mvn clean package -Dmaven.test.skip=true

  1. 2. 使用docker构建镜像<br />
  2. ::: tip 注意<br />
  3. 请自行准备docker镜像仓库,此处以registry.cn-shenzhen.aliyuncs.com阿里云私有仓库为例。<br />
  4. :::

$ cd ./jetlinks-standalone $ docker build -t registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-standalone:latest .

  1. 3. 推送镜像

$ docker push registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-standalone:latest

  1. 4. 创建docker-compose文件

version: ‘2’ services: redis: image: redis:5.0.4 container_name: jetlinks-ce-redis

  1. # ports:
  2. # - "6379:6379"
  3. volumes:
  4. - "redis-volume:/data"
  5. command: redis-server --appendonly yes
  6. environment:
  7. - TZ=Asia/Shanghai

elasticsearch: image: elasticsearch:6.8.11 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:

  1. - elasticsearch-volume:/usr/share/elasticsearch/data

ports:

- “9200:9200”

- “9300:9300”

kibana: image: kibana:6.8.11 container_name: jetlinks-ce-kibana environment: ELASTICSEARCH_URL: http://elasticsearch:9200 links:

  1. - elasticsearch:elasticsearch
  2. ports:
  3. - "5602:5601"
  4. depends_on:
  5. - elasticsearch

postgres: image: postgres:11-alpine container_name: jetlinks-ce-postgres volumes:

  1. - "postgres-volume:/var/lib/postgresql/data"
  2. ports:
  3. - "5432:5432"
  4. environment:
  5. POSTGRES_PASSWORD: jetlinks
  6. POSTGRES_DB: jetlinks
  7. TZ: Asia/Shanghai

ui: image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-antd:latest container_name: jetlinks-ce-ui ports:

  1. - 9000:80
  2. environment:
  3. - "API_BASE_PATH=http://jetlinks:8848/" #API根路径
  4. volumes:
  5. - "jetlinks-volume:/usr/share/nginx/html/upload"
  6. links:
  7. - jetlinks:jetlinks

jetlinks: image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-standalone:latest container_name: jetlinks-ce ports:

  1. - 8848:8848 # API端口
  2. - 1883-1890:1883-1890 # 预留
  3. - 8000-8010:8000-8010 # 预留
  4. volumes:
  5. - "jetlinks-volume:/application/static/upload" # 持久化上传的文件
  6. - "jetlinks-protocol-volume:/application/data/protocols"
  7. environment:
  8. # - "JAVA_OPTS=-Xms4g -Xmx18g -XX:+UseG1GC"
  9. - "TZ=Asia/Shanghai"
  10. - "hsweb.file.upload.static-location=http://127.0.0.1:8848/upload" #上传的静态文件访问根地址,为ui的地址.
  11. - "spring.r2dbc.url=r2dbc:postgresql://postgres:5432/jetlinks" #数据库连接地址
  12. - "spring.r2dbc.username=postgres"
  13. - "spring.r2dbc.password=jetlinks"
  14. - "elasticsearch.client.host=elasticsearch"
  15. - "elasticsearch.client.post=9200"
  16. - "spring.redis.host=redis"
  17. - "spring.redis.port=6379"
  18. - "logging.level.io.r2dbc=warn"
  19. - "logging.level.org.springframework.data=warn"
  20. - "logging.level.org.springframework=warn"
  21. - "logging.level.org.jetlinks=warn"
  22. - "logging.level.org.hswebframework=warn"
  23. - "logging.level.org.springframework.data.r2dbc.connectionfactory=warn"
  24. links:
  25. - redis:redis
  26. - postgres:postgres
  27. - elasticsearch:elasticsearch
  28. depends_on:
  29. - postgres
  30. - redis
  31. - elasticsearch

volumes: postgres-volume: redis-volume: elasticsearch-volume: jetlinks-volume: jetlinks-protocol-volume:

  1. ::: tip 注意:<br />
  2. jetlinks docker镜像版本更新和源代码根目录下文件pom.xml中的版本号同步。<br />
  3. :::<br />6.运行docker-compose文件

docker-compose up -d

  1. ### jar包方式
  2. 1.使用maven命令将项目打包,在代码根目录执行:

./mvnw clean package -Dmaven.test.skip=true

  1. 2.jar包上传到需要部署的服务器上。<br />jar包文件地址: `jetlinks-standalone/target/jetlinks-standalone.jar`<br />3.使用java命令运行jar

$ java -jar jetlinks-standalone.jar

``` ::: tip 注意
请根据情况调整jvm参数等信息.
:::