打包容器镜像
若制作镜像包以容器化方式部署应用,不支持在一个容器内运行多个集成ModuleSDK的软件进程或者重启集成ModuleSDK的软件进程,会导致鉴权失败等问题。
- 上传打包的项目。
将jar文件上传到联网的linux机器上,如目录(/home/monitor)中
- 安装docker。
请确认使用的系统已经安装docker(docker版本需要高于17.06,推荐18.06),安装参照docker 安装教程。
- 制作镜像。
- 搜索基础镜像,基础镜像需要集成jre。
docker search jre8
- 选择合适的镜像(镜像需要集成版本不低于8的jre)
NAME DESCRIPTION STARS OFFICIAL AUTOMATED livingobjects/jre8 Jre8 image 4 [OK]
livingobjects/jre8镜像是docker hub第三方提供的镜像,非IoT团队发布,且IoT团队未提供任何官方镜像。该镜像在此仅做示例,IoT团队对该镜像的安全性不作保证。强烈建议用户自己封装镜像!
- 拉取镜像
docker pull livingobjects/jre8
- 编写dockerfile制作镜像
dockerfile内容参照如下(具体可参考编写高效的Dockerfile )
#Version 1.0.0 #基础镜像来源 FROM livingobjects/jre8 #授权 RUN mkdir -p /opt/iot/edge/monitor / && chmod -R 777 /opt/ #复制文件到指定目录,此dockerfile文件位置:/home,jar包位置:/home/monitor COPY monitor /opt/iot/edge/monitor #用户 USER root #开放端口 EXPOSE 8080 #运行命令 CMD ["java", "-jar", "/opt/iot/edge/monitor/monitor-app.jar", "run"]
目录树结构如下:
home
├── dockerfile
└── monitor
└── monitor-app.jar
- 构建镜像
docker build -t edge_monitor:1.0.0 /home --no-cache
- 查看打包完成的镜像
docker images
回显信息:REPOSITORY TAG IMAGE ID CREATED SIZE edge_monitor 1.0.0 93f9d964bcea 12 seconds ago 243MB
- 搜索基础镜像,基础镜像需要集成jre。