|
|
|
# 离线部署Docker
|
|
|
|
|
|
|
|
1. 将docker包拷入指定文件夹:/home/docker
|
|
|
|
|
|
|
|
2. 进入docker 目录
|
|
|
|
|
|
|
|
**cd /home/docker/**
|
|
|
|
|
|
|
|
1. 安装以下镜像:
|
|
|
|
|
|
|
|
**rpm -ivh docker-ce-cli-19.03.6-3.el7.x86_64.rpm**
|
|
|
|
|
|
|
|
**rpm -ivh container-selinux-2.107-3.el7.noarch.rpm**
|
|
|
|
|
|
|
|
**rpm -ivh containerd.io-1.2.10-3.2.el7.x86_64.rpm**
|
|
|
|
|
|
|
|
**rpm -ivh docker-ce-19.03.6-3.el7.x86_64.rpm**
|
|
|
|
|
|
|
|
1. 启动测试docker
|
|
|
|
|
|
|
|
**ststemctl start docker**
|
|
|
|
|
|
|
|
1. 查看启动状态
|
|
|
|
|
|
|
|
**systemctl status docker**
|
|
|
|
|
|
|
|
1. 将下载的安装文件docker-compose转移到/usr/local/bin/目录下,增加执行权限
|
|
|
|
|
|
|
|
**chmod a+x docker-compose**
|
|
|
|
|
|
|
|
1. 测试是否成功
|
|
|
|
|
|
|
|
**docker-compose --version**
|
|
|
|
|
|
|
|
当执行完该命令后docker-compose还报不是内部命令,执行以下命令即可(因为不同的系统,设置权限的目录也不太一样)
|
|
|
|
|
|
|
|
**sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose**
|
|
|
|
|
|
|
|
# 导入镜像
|
|
|
|
|
|
|
|
**1.导入产品库镜像**
|
|
|
|
|
|
|
|
**docker load \< fastdfs.tar**
|
|
|
|
|
|
|
|
**docker tag imageId yzsj/fastdfs:v1.0.2**
|
|
|
|
|
|
|
|
**2.导入gis服务镜像**
|
|
|
|
|
|
|
|
**docker load \< gis3-10.tar**
|
|
|
|
|
|
|
|
**docker tag imageId yzsj/gis:v1.0.10**
|
|
|
|
|
|
|
|
**3.导入前台服务镜像**
|
|
|
|
|
|
|
|
**docker load \< nginx.tar**
|
|
|
|
|
|
|
|
**docker tag imageId yzsj/nginx:v1.0.1**
|
|
|
|
|
|
|
|
**4.导入后台服务镜像**
|
|
|
|
|
|
|
|
**docker load \< service.tar**
|
|
|
|
|
|
|
|
**docker tag imageId yzsj/service:v1.0.1**
|
|
|
|
|
|
|
|
**5.导入postgis服务镜像**
|
|
|
|
|
|
|
|
**docker load \< postgis11-2.5.tar**
|
|
|
|
|
|
|
|
**docker tag imageId postgis/postgis: 12-2.5**
|
|
|
|
|
|
|
|
**6.导入redis镜像**
|
|
|
|
|
|
|
|
**docker load \< redis.tar**
|
|
|
|
|
|
|
|
**docker tag imageId redis:4**
|
|
|
|
|
|
|
|
**7.导入mysql镜像**
|
|
|
|
|
|
|
|
**docker load \<mysql.tar**
|
|
|
|
|
|
|
|
**8.导入Python镜像**
|
|
|
|
|
|
|
|
**docker load \< kuduserver.tar**
|
|
|
|
|
|
|
|
# 部署Mysql数据库
|
|
|
|
|
|
|
|
1. **将mysql的镜像导入到服务器上**
|
|
|
|
|
|
|
|
2. **创建mysql容器**
|
|
|
|
|
|
|
|
**docker run -d -i -p 3306:3306 --name=mysql --restart=always -e
|
|
|
|
MYSQL_ROOT_PASSWORD=root -d mysql:5.7**
|
|
|
|
|
|
|
|
1. **查看容器验证是否安装成功**
|
|
|
|
|
|
|
|
**docker exec -it 容器ID bash**
|
|
|
|
|
|
|
|
**Mysql -u root -p root**
|
|
|
|
|
|
|
|
2. **查看是否成功即可**
|
|
|
|
|
|
|
|
**Mysql创建用户:**
|
|
|
|
|
|
|
|
**CREATE USER 'agrom'@'%' IDENTIFIED BY 'agromdba';**
|
|
|
|
|
|
|
|
**创建agrom用户,允许任何服务器登入,密码为agromdba**
|
|
|
|
|
|
|
|
**赋予权限,给该用户**
|
|
|
|
|
|
|
|
**GRANT privileges ON \*.\* TO agrom@'%'**
|
|
|
|
|
|
|
|
# 部署服务中心
|
|
|
|
|
|
|
|
将governance包放入/home/services/governance下
|
|
|
|
|
|
|
|
然后执行,修改docker-compose的信息(使用的镜像为yzsj/service:v1.0.1)然后执行以下命令:
|
|
|
|
|
|
|
|
**docker-compose -f xxx.yml up**
|
|
|
|
|
|
|
|
**然后查看ip:9001是否出现服务中心界面即可**
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
# 部署产品库(FASTDFS)
|
|
|
|
|
|
|
|
1. 修改compose文件中的ip地址改为当前部署机器的ip地址,修改镜像为:yzsj/fastdfs:v1.0.2,
|
|
|
|
|
|
|
|
2. 修改conf文件夹下的client.conf与mod\_fastdfs.conf,主要为修改其中的ip地址,改为当前部署机器的ip地址
|
|
|
|
|
|
|
|
3. 启动容器:
|
|
|
|
|
|
|
|
**docker-compose -f xxx.yml up**
|
|
|
|
|
|
|
|
1. 进入容器,查看挂载情况,看到Active状态,就代表挂载成功了,同时可以检查服务器上storage的log信息,看看是否文件夹都被创建了出来
|
|
|
|
|
|
|
|
**docker exec -it yun-database-fastdfs bash**
|
|
|
|
|
|
|
|
**fdfs_monitor /etc/fdfs/client.conf**
|
|
|
|
|
|
|
|
**同时需要注意fastdfs的挂载地址,看看ip是否为docker内部ip,如果是,需要执行以下命令将docker内部ip转化为外部ip**
|
|
|
|
|
|
|
|
**iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 22122 -d 10.20.30.245 -j
|
|
|
|
SNAT --to 192.168.1.245**
|
|
|
|
|
|
|
|
# 部署dfs产品服务
|
|
|
|
|
|
|
|
1. 修改compose文件中的fastdfs的地址,更改为部署后的产品库ip地址,端口号不变,compose文件使用的镜像为yzsj/service:v1.0.1镜像
|
|
|
|
|
|
|
|
fastdfs.tracker_servers = fastdfs部署ip:22122
|
|
|
|
|
|
|
|
2. 执行docker-compose命令,启动项目
|
|
|
|
|
|
|
|
# 部署postgis服务
|
|
|
|
|
|
|
|
1. 最重要的就是将postGis镜像导入到docker中去
|
|
|
|
|
|
|
|
2. 将config文件夹下的yz-postgres.conf文件拷贝放到目录中去
|
|
|
|
|
|
|
|
3. 执行docker-compose命令
|
|
|
|
|
|
|
|
4. 用QGis连接测试
|
|
|
|
|
|
|
|
5. 导入public中的图层数据
|
|
|
|
|
|
|
|
导出数据库(以下操作都是在容器内部执行):
|
|
|
|
|
|
|
|
> pg_dump -h 192.168.1.248 -U agrom znqdb_gis_js \> znqdb_gis\_js.pgsql
|
|
|
|
|
|
|
|
将文件从容器内部保存到服务器:
|
|
|
|
|
|
|
|
> docker cp容器ID:/home/znqdb_gis_js.pgsql /home/znqdb_gis_js.pgsql
|
|
|
|
|
|
|
|
导入数据库:
|
|
|
|
|
|
|
|
1. 将文件导入到容器内部
|
|
|
|
|
|
|
|
docker cp /home/znqdb_gis_js.pgsql 容器id:/home/znqdb_gis_js.pgsql
|
|
|
|
|
|
|
|
2. 导入数据
|
|
|
|
|
|
|
|
psql -U agrom znqdb_gis_jx \< znqdb_gis\_jx.pgsql
|
|
|
|
|
|
|
|
# 部署Gis服务
|
|
|
|
|
|
|
|
1. 最重要的就是导入Gis3镜像:最新版本1.0.10版本的镜像
|
|
|
|
|
|
|
|
2. 再目录下建立文件夹,如图所示:
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
3. 将conf目录拷贝
|
|
|
|
|
|
|
|
4. 将config下的layout文件夹下的对应区域的文件夹拷贝下来
|
|
|
|
|
|
|
|
5. 将datas下的extent文件夹拷贝下来
|
|
|
|
|
|
|
|
6. 将images下的layout下的对应文件夹拷贝下来
|
|
|
|
|
|
|
|
7. 创建logs,tiles文件夹
|
|
|
|
|
|
|
|
8. 修改config.py:
|
|
|
|
|
|
|
|
**HOST = '192.168.1.245'改为部署IP**
|
|
|
|
|
|
|
|
**SERVICE_HOST = '192.168.1.253'改为注册中心IP**
|
|
|
|
|
|
|
|
**配置PGSQL_DBS**
|
|
|
|
|
|
|
|
**PRODUCT_SERVICE_URL =**
|
|
|
|
[**http://192.168.1.253:8083/product/image**](http://192.168.1.253:8083/product/image)**修改为产品服务对应的部署地址**
|
|
|
|
|
|
|
|
9. 修改gis-api-v3.yaml:
|
|
|
|
|
|
|
|
url: <http://192.168.1.245:9090/>修改为部署的ip
|
|
|
|
|
|
|
|
10. 将隐藏的.env文件拷贝,或者在执行docker-compose命令之前执行 set
|
|
|
|
\$GIS_PATH=/home/services/gis(Windows下不用\$而用 set %GISPATH%这种格式)
|
|
|
|
|
|
|
|
11. 执行docker-compose,启动容器
|
|
|
|
|
|
|
|
12. 修改容器内部信息(/app/app.py将Eureka的注释给去除掉就可以了),将gis服务暴露在注册中心
|
|
|
|
|
|
|
|
# 部署地图服务
|
|
|
|
|
|
|
|
1. 修改conf文件中的地址,修改为部署服务器的地址
|
|
|
|
|
|
|
|
2. 执行docker-compose创建容器
|
|
|
|
|
|
|
|
3. 打开<http://部署ip:8081>看到地图界面即可
|
|
|
|
|
|
|
|
# 部署用户服务
|
|
|
|
|
|
|
|
1. 修改数据库地址、注册中心地址、redis地址
|
|
|
|
|
|
|
|
2. 执行docker-compose命令运行元数据容器
|
|
|
|
|
|
|
|
Tips:注意镜像名称是否正确,不然会去下载
|
|
|
|
|
|
|
|
# 部署元数据服务
|
|
|
|
|
|
|
|
1. 修改数据库地址、注册中心地址、redis地址
|
|
|
|
|
|
|
|
2. 执行docker-compose命令运行元数据容器
|
|
|
|
|
|
|
|
Tips:注意镜像名称是否正确,不然docker会去下载
|
|
|
|
|
|
|
|
# 部署智慧农业气象服务系统前台
|
|
|
|
|
|
|
|
1. 修改aseet文件夹中的sysconfig文件,注意将公司的地址转化为部署的系统地址,同时将之前的nginx代理去除掉,除非在部署机器上进行了nginx转发,否则应当注意把地址与端口改为不带nginx代理的实际地址
|
|
|
|
|
|
|
|
2. 将dist文件夹放入nginx的www文件夹下
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
1. 利用docker-compose命令启动nginx服务器即可
|
|
|
|
|
|
|
|
# 部署智慧农业气象后台服务
|
|
|
|
|
|
|
|
1. 修改application.properties文件,将数据库地址,eureka地址修改为部署地址
|
|
|
|
|
|
|
|
2. 修改yml文件中的镜像名称,内部端口号
|
|
|
|
|
|
|
|
3. 执行docker-compose命令即可
|
|
|
|
|
|
|
|
# 数据库迁移
|
|
|
|
|
|
|
|
1. **元数据库:znqdb_meta_yz**
|
|
|
|
|
|
|
|
2. **用户库:user\_manager**
|
|
|
|
|
|
|
|
3. **江苏库:znqdb_ajs_cma**
|
|
|
|
|
|
|
|
利用数据库连接工具,连接mysql部署的服务器地址:3306,,创建znqdb\_meta_yz、user\_manager、znqdb\_ajs_cma库,字符集设置为utf8,排序规则设置为utf8-cli,创建完成后,在对应数据库右键执行sql脚本即可
|
|
|
|
|
|
|
|
# 安装Redis
|
|
|
|
|
|
|
|
1. 导入redis镜像
|
|
|
|
|
|
|
|
2. 执行docker-compose命令,创建redis容器
|
|
|
|
|
|
|
|
# 测试天擎脚本(Mysql)
|
|
|
|
|
|
|
|
1. 识别目录结构:
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
Cimiss为接洽cimiss的python接口,cmadaas为接入天擎的数据接口,config为配置数据库连接的配置文件,其它的暂时不用修改
|
|
|
|
|
|
|
|
1. 修改yzbusiness\\config.py
|
|
|
|
|
|
|
|
将mysql的注释放开,user为数据库用户名,Password为数据库密码,host为数据库部署地址,Database为要与天擎接洽的数据库名称其它的不用修改
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
2. 修改cmadaas下的config.py文件,修改天擎的必要信息
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
Host为天擎访问的ip地址,用户名为天擎用户下属业务账号的用户名,password为业务账号的密码,端口一般为80
|
|
|
|
|
|
|
|
3. 修改config文件夹下的cma_rdbms.xml文件
|
|
|
|
|
|
|
|
该文件为配置数据库入库的字段映射及任务名称,根据所选数据表天擎的字段和mysql实际数据库的字段进行一一映射
|
|
|
|
|
|
|
|
4. 修改autoTask_mysql.py文件
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
argMap现有日期的为测试时所用的资料,argMap =
|
|
|
|
parser\_args(sys.argv)为实际系统运转时接收时间的方法,实际使用时要放开该注释,os.path.join(conf_path,’config/cma_rebms.xml’)为使用哪一个config文件进行数据的录入,根据需要进行配置即可
|
|
|
|
|
|
|
|
5. 测试脚本
|
|
|
|
|
|
|
|
利用vscode编译工具和python插件环境,进行测试,当执行该脚本时,查看测试那一天的数据有没有被录入到数据库即可
|
|
|
|
|
|
|
|
# 部署业务后台系统(执行定时入库)前台
|
|
|
|
|
|
|
|
1. 修改assets/config文件夹下的sys.json文件,更改用户、元数据等服务的地址
|
|
|
|
|
|
|
|
2. 在taskdefs.json中新增任务:
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
3. 配置完成后,执行docker-compose命令即可
|
|
|
|
|
|
|
|
# 部署业务后台系统后台
|
|
|
|
|
|
|
|
1. 建立以下目录结构:
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
Scripts文件夹为放置python
|
|
|
|
文件的文件夹,temp为临时文件夹、logs文件为日志文件夹、yzhub下放置exec-task包:整个拷贝进去即可
|
|
|
|
|
|
|
|
2. 修改yml文件与application.properties文件中的端口号与数据源地址,镜像为打包的python镜像kuduserver
|
|
|
|
|
|
|
|
3. 执行docker-compose命令创建容器即可,如果容器内部报缺少某一个module,可以在容器内部执行pip
|
|
|
|
install module,安装该模块即可,或者是在dockerfile构建之前将该包打入即可
|
|
|
|
|
|
|
|
# 新增自动任务
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
**利用启动任务进行测试**
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
**定时任务的设置**
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
 |