incloud开发文档 5.1.0 Help

服务器配置

服务器配置分以下几种情况;

  • jar包部署

  • docker部署

  • k8s部署

其中,jar包不推荐,需要侵入环境相应的配置,JDK等,也不好进行管理、运维等。

推荐使用k8s部署方式

docker部署

准备

从平台那里得到相应资源,或者通过自己引用公共私服,下载依赖后,自己打包相应镜像包,推荐自己项目引用依赖打包成镜像, 项目开发,请参考【项目开发

镜像资源

  • incloud-base-gateway.tar

  • incloud-base-main.tar

  • incloud-base-wf.tar

  • incloud-base-log.tar

使用docker-compose

在docker官网docker-compose上下载并安装最新版本的docker-compose, 请注意相应平台。

使用docker-compose来自动构建并打包相应的业务镜像,提供以下脚本做为参考 参考下图的方式创建目录结构

Incloud publisher

部署服务

编写以下示例脚本,请注意相应的目录结构,Dockerfile为相应目录下对应服务的Dockerfile, .sh分别对应rebuild.sh、start.sh、stop.sh。

请根据实际情况修改或增加相应的变量,或增加自己的服务配置,以下内容为示例参考!

脚本示例

version: "3.8" services: incloud-base-gateway: build: context: ./ dockerfile: ./incloud-base/incloud-base-gateway/Dockerfile args: INCLOUD_NACOS_SERVICE_HOST: ${INCLOUD_NACOS_SERVICE_HOST} INCLOUD_MYSQL_SERVICE_HOST: ${INCLOUD_MYSQL_SERVICE_HOST} INCLOUD_REDIS_SERVICE_HOST: ${INCLOUD_REDIS_SERVICE_HOST} INCLOUD_NACOS_SERVICE_PORT: ${INCLOUD_NACOS_SERVICE_PORT} INCLOUD_NACOS_NAMESPACE: ${INCLOUD_NACOS_NAMESPACE} INCLOUD_DB_USER: ${INCLOUD_DB_USER} INCLOUD_DB_PWD: ${INCLOUD_DB_PWD} INCLOUD_MYSQL_SERVICE_PORT: ${INCLOUD_MYSQL_SERVICE_PORT} INCLOUD_DB_SCHEMA: ${INCLOUD_DB_SCHEMA} INCLOUD_DB_BACKET: ${INCLOUD_DB_BACKET} INCLOUD_REDIS_SERVICE_PORT: ${INCLOUD_REDIS_SERVICE_PORT} INCLOUD_REDIS_PWD: ${INCLOUD_REDIS_PWD} INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST: ${INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST} INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT: ${INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT} INCLOUD_RABBITMQ_USERNAME: ${INCLOUD_RABBITMQ_USERNAME} INCLOUD_RABBITMQ_PASSWORD: ${INCLOUD_RABBITMQ_PASSWORD} INCLOUD_RABBITMQ_VIRTUAL: ${INCLOUD_RABBITMQ_VIRTUAL} INCLOUD_MINIO_SERVICE_HOST: ${INCLOUD_MINIO_SERVICE_HOST} INCLOUD_MINIO_SERVICE_PORT: ${INCLOUD_MINIO_SERVICE_PORT} INCLOUD_MINIO_ACCESSKEY: ${INCLOUD_MINIO_ACCESSKEY} INCLOUD_MINIO_SECRETKEY: ${INCLOUD_MINIO_SECRETKEY} INCLOUD_MINIO_BACKETNAME: ${INCLOUD_MINIO_BACKETNAME} INCLOUD_ROCKETMQ_SERVICE_HOST: ${INCLOUD_ROCKETMQ_SERVICE_HOST} INCLOUD_ROCKETMQ_SERVICE_PORT: ${INCLOUD_ROCKETMQ_SERVICE_PORT} INCLOUD_SENTINEL_SERVICE_HOST: ${INCLOUD_SENTINEL_SERVICE_HOST} INCLOUD_SENTINEL_SERVICE_PORT: ${INCLOUD_SENTINEL_SERVICE_PORT} INCLOUD_ES_SERVICE_HOST: ${INCLOUD_ES_SERVICE_HOST} INCLOUD_ES_SERVICE_PORT: ${INCLOUD_ES_SERVICE_PORT} INCLOUD_BASE_GATEWAY_SERVICE_HOST: ${INCLOUD_BASE_GATEWAY_SERVICE_HOST} INCLOUD_BASE_GATEWAY_SERVICE_PORT: ${INCLOUD_BASE_GATEWAY_SERVICE_PORT} restart: always container_name: incloud-base-gateway #networks: # - netwisd image: incloud-base-gateway volumes: - /opt/app/logs/incloud-base-gateway/:/root/incloud/logs ports: - 8000:8000 - 8719:8719
FROM amazoncorretto:17 #作者 MAINTAINER zouliming@netwisd.com #工作空间 WORKDIR /root/incloud #相当于声明变量,到时候来源于docker-compose. ARG INCLOUD_NACOS_SERVICE_HOST ARG INCLOUD_MYSQL_SERVICE_HOST ARG INCLOUD_REDIS_SERVICE_HOST ARG INCLOUD_NACOS_SERVICE_PORT ARG INCLOUD_NACOS_NAMESPACE ARG INCLOUD_DB_USER ARG INCLOUD_DB_PWD ARG INCLOUD_MYSQL_SERVICE_PORT ARG INCLOUD_DB_SCHEMA ARG INCLOUD_DB_BACKET ARG INCLOUD_REDIS_SERVICE_PORT ARG INCLOUD_REDIS_PWD ARG INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST ARG INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT ARG INCLOUD_RABBITMQ_USERNAME ARG INCLOUD_RABBITMQ_PASSWORD ARG INCLOUD_RABBITMQ_VIRTUAL ARG INCLOUD_MINIO_SERVICE_HOST ARG INCLOUD_MINIO_SERVICE_PORT ARG INCLOUD_MINIO_ACCESSKEY ARG INCLOUD_MINIO_SECRETKEY ARG INCLOUD_MINIO_BACKETNAME ARG INCLOUD_ROCKETMQ_SERVICE_HOST ARG INCLOUD_ROCKETMQ_SERVICE_PORT ARG INCLOUD_SENTINEL_SERVICE_HOST ARG INCLOUD_SENTINEL_SERVICE_PORT ARG INCLOUD_ES_SERVICE_HOST ARG INCLOUD_ES_SERVICE_PORT ARG INCLOUD_BASE_GATEWAY_SERVICE_HOST ARG INCLOUD_BASE_GATEWAY_SERVICE_PORT #host相关变更赋值 ENV INCLOUD_NACOS_SERVICE_HOST=$INCLOUD_NACOS_SERVICE_HOST INCLOUD_MYSQL_SERVICE_HOST=$INCLOUD_MYSQL_SERVICE_HOST INCLOUD_REDIS_SERVICE_HOST=$INCLOUD_REDIS_SERVICE_HOST INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST=$INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST INCLOUD_MINIO_SERVICE_HOST=$INCLOUD_MINIO_SERVICE_HOST INCLOUD_ROCKETMQ_SERVICE_HOST=$INCLOUD_ROCKETMQ_SERVICE_HOST INCLOUD_SENTINEL_SERVICE_HOST=$INCLOUD_SENTINEL_SERVICE_HOST INCLOUD_ES_SERVICE_HOST=$INCLOUD_ES_SERVICE_HOST INCLOUD_BASE_GATEWAY_SERVICE_HOST=$INCLOUD_BASE_GATEWAY_SERVICE_HOST #相关参数变量赋值 ENV INCLOUD_NACOS_SERVICE_PORT=$INCLOUD_NACOS_SERVICE_PORT INCLOUD_NACOS_NAMESPACE=$INCLOUD_NACOS_NAMESPACE INCLOUD_DB_USER=$INCLOUD_DB_USER INCLOUD_DB_PWD=$INCLOUD_DB_PWD INCLOUD_MYSQL_SERVICE_PORT=$INCLOUD_MYSQL_SERVICE_PORT INCLOUD_DB_SCHEMA=$INCLOUD_DB_SCHEMA INCLOUD_DB_BACKET=$INCLOUD_DB_BACKET INCLOUD_REDIS_SERVICE_PORT=$INCLOUD_REDIS_SERVICE_PORT INCLOUD_REDIS_PWD=$INCLOUD_REDIS_PWD INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT=$INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT INCLOUD_RABBITMQ_USERNAME=$INCLOUD_RABBITMQ_USERNAME INCLOUD_RABBITMQ_PASSWORD=$INCLOUD_RABBITMQ_PASSWORD INCLOUD_RABBITMQ_VIRTUAL=$INCLOUD_RABBITMQ_VIRTUAL INCLOUD_MINIO_SERVICE_PORT=$INCLOUD_MINIO_SERVICE_PORT INCLOUD_MINIO_ACCESSKEY=$INCLOUD_MINIO_ACCESSKEY INCLOUD_MINIO_SECRETKEY=$INCLOUD_MINIO_SECRETKEY INCLOUD_MINIO_BACKETNAME=$INCLOUD_MINIO_BACKETNAME INCLOUD_ROCKETMQ_SERVICE_PORT=$INCLOUD_ROCKETMQ_SERVICE_PORT INCLOUD_SENTINEL_SERVICE_PORT=$INCLOUD_SENTINEL_SERVICE_PORT INCLOUD_ES_SERVICE_PORT=$INCLOUD_ES_SERVICE_PORT INCLOUD_BASE_GATEWAY_SERVICE_HOST=$INCLOUD_BASE_GATEWAY_SERVICE_HOST INCLOUD_BASE_GATEWAY_SERVICE_PORT=$INCLOUD_BASE_GATEWAY_SERVICE_PORT #时区同步 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone #对外映射的端口 EXPOSE 8000 ADD ./incloud-base/incloud-base-gateway/target/incloud-base-gateway.jar ./ CMD java -Xms256m -Xmx1024m -jar incloud-base-gateway.jar
# ---------- rebuild.sh ---------- #!/bin/sh # zouliming@netwisd.com # 总服务的重启 echo 'restarting...' ./stop.sh ./start.sh # ---------- start.sh ---------- #!/bin/sh # zouliming@netwisd.com # 所有服务的总的启动命令,执行执行这个,会创建新的镜像并启动, # 而且如果原来有镜像,会导致产生none版本;所以如果启动次命令之前,最好确保没有与之对应的镜像; # 否则,就先启动start.sh或restart.sh命令 # 如果没有配置环境变量,需要写绝对路径的命令 . /etc/profile . /root/.bash_profile echo 'starting...' docker-compose up -d echo 'done,enjoy it!' # ---------- stop.sh ---------- #!/bin/sh # zouliming@netwisd.com # 停掉所有服务,并删除容器,还有与之对应的镜像; # 如果只是停止容器,直接使用docker-compse命令 # 如果没有配置环境变量,需要写绝对路径的命令 . /etc/profile . /root/.bash_profile echo 'stop service and rm them...' docker-compose rm -fsv echo '-----rmi image-----' docker rmi incloud-base-gateway docker rmi incloud-base-log docker rmi incloud-base-main docker rmi incloud-base-wf echo 'Stop to complete!'
# ---------- rebuild.sh ---------- #!/bin/sh # zouliming@netwisd.com # gateway的重启 echo 'restarting...' ./stop.sh ./start.sh # ---------- start.sh ---------- #!/bin/sh # zouliming@netwisd.com # gateway服务的启动命令,执行执行这个,会创建新的镜像并启动, # 而且如果原来有镜像,会导致产生none版本;所以如果启动次命令之前,最好确保没有与之对应的镜像; # 否则,就先启动start.sh或restart.sh命令 # 如果没有配置环境变量,需要写绝对路径的命令 . /etc/profile . ~/.bash_profile echo 'starting...' docker-compose up -d incloud-base-gateway echo 'done,enjoy it!' # ---------- stop.sh ---------- #!/bin/sh # zouliming@netwisd.com # 停掉gateway服务,并删除容器,还有与之对应的镜像; # 如果只是停止容器,直接使用docker-compse命令 # 如果没有配置环境变量,需要写绝对路径的命令 . /etc/profile . ~/.bash_profile echo 'stop service and rm it...' docker-compose rm -fsv incloud-base-gateway echo '-----rmi image-----' docker rmi incloud-base-gateway echo 'Stop to complete!'

部署中间件

中间件部署请参考【中间件 】,中间件部署请使用docker部署方式。

k8s部署

详见【K8S

服务器优化配置(可选)

安装zsh

基于centos7的服务器,安装zsh,可以提高效率,推荐使用oh-my-zsh,安装请参考oh-my-zsh

安装oh-my-zsh前需要先安装zsh,请参考zsh

在线安装

sudo yum update && sudo yum -y install zsh

离线安装

下载离线安装包: 【zsh.rpm

sudo rpm -ivh ./zsh-5.0.2-34.el7_8.2.x86_64.rpm

安装oh-my-zsh(需要先安装zsh)

在线安装oh-my-zsh

安装git

sudo yum install -y git

参考下面脚本,可以加上执行权限后,直接运行安装:

ohmyzsh.sh

如果执行时报:-bash: ./ohmyzsh.sh: /bin/sh^M: bad interpreter: No such file or directory之类的错误, 请使用vi编辑器打开,然后执行:set ff=unix,再保存即可。 或执行:

sed -i 's/\r$//' ohmyzsh.sh

然后再安装相应的插件,可以参考下面这个地址: 【zsh-users

使用源码快速安装如下:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search

如果git拉取不下来,也可以从这里下载: 【zsh-plugin.tar

Autojump配置

官网:https://github.com/wting/autojump 正常安装即可; 安装完之后,在.zshrc最后加入: . /usr/share/autojump/autojump.sh

vi ~/.zshrc

plugins=( git zsh-autosuggestions zsh-syntax-highlighting zsh-history-substring-search )

离线安装oh-my-zsh

下载离线安装包: 【ohmyzsh.tar

执行安装:

# 先创建目录 mkdir ~/.oh-my-zsh/ # 然后把ohmyzsh.tar解压到~/.oh-my-zsh/中。 cp ohmyzsh.tar ~/.oh-my-zsh/ cd ~/.oh-my-zsh/ tar -xvf ohmyzsh.tar # 执行安装 sh ~/.oh-my-zsh/tools/install.sh # 将zsh设置为默认shell chsh -s $(which zsh)
Last modified: 20 一月 2025