iManager拥有一定的整合经过定制的Compose应用(行业应用)的能力,可以将自己的应用通过iManager管理起来,下面就将自己的vue项目通过自定义Compose应用的方式整合到iManager里面。
vue项目自定义Compose应用步骤大致可分一下四个步骤:
1. 制作镜像;
2. 编写rule.yml文件;
3. 编写docker-compose.yml文件;
4. 通过compose应用部署到iManager。
1. 制作镜像
将本地的vue项目打包成docker镜像,通过vue build将项目打包,通过nginx代理来发布服务,最后通过Dockerfile生产镜像。vue制作docker镜像具体的制作过程网上资料很多,在此不做多余的介绍,可以参考博客:https://blog.csdn.net/zhou_fan_xi/article/details/110440983
2. 编写rule.yml文件
rule.yml编写主要是分成了三个板块,创建compose应用页面(createAppSetPage),部署完成后的应用列表页面(appSetListPage)和 应用详情页面(appSetDetailPage),rule文件的详细编写说明在imanager(https://help.supermap.com/iManager/1020/zh/tutorial/CustomizeIntro)中有详细说明 。
rule.yml文件内容:
version: "1"
appSetListPage:
serviceTemplate:
serviceName: "vueDocker"
urlTemplate: "http://%1$s:%2$s"
appSetBaseName: "vue"
createAppSetPage:
- type: port
position: advanced
item:
- name: "VUE_EXPOSE_PORT"
description: "外部端口"
placeholder: "e.g. 80"
validation:
- !!com.supermap.imanager.commontypes.RuleRegexValidation
regex: '^(102[4-9]|10[3-9]\d{1}|1[1-9]\d{2}|[2-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d{1}|6553[0-5])$'
message: "端口只能在1024-65535之间"
- name: "VUE_CONTAINER_PORT"
value: 80
appSetDetailPage:
summary: "vueDocker"
description: "vueDocker"
serviceTemplates:
- serviceName: "vueDocker"
urlTemplate: "http://%1$s:%2$s"
portTemplate: "%1$s"
description: vueDocker
3. 编写docker-compose.yml文件
docker-compose.yml文件编写规则可以参考docker官网手册,也可以参考博客:https://blog.csdn.net/qq_29999343/article/details/78318397
docker-compose.yml文件内容:
version: "3"
services:
vueDocker:
image: vue-docker:1.0.0
ports:
- "${VUE_EXPOSE_PORT}:${VUE_CONTAINER_PORT}"
说明:${VUE_EXPOSE_PORT} ${VUE_CONTAINER_PORT} 在上一步中的创建compose应用页面(createAppSetPage)中的创建页面所需输入端口 port 中配置。
4. 通过compose应用部署到iManage
docker-compose.yml & rule.yml 文件放置路径
通过以上部署就可以在imanager的Compose应用使用定制的vueDocker应用,即可在Compose应用模块中创建、监控、管理该应用。
说明:compose应用模块使用需要在.env中配置了COMPOSE_DOCKER_IP