小暖男石头哥|微服务架构中将SpringBoot项目打包Docker镜像( 三 )
EXPOSE
仅仅只是声明端口 。
作用:
- 帮助镜像使用者理解这个镜像服务的守护端口 , 以方便配置映射 。
- 在运行时使用随机端口映射时 , 也就是 docker run -P 时 , 会自动随机映射 EXPOSE 的端口 。
EXPOSE <端口1> [<端口2>...]
WORKDIR指定工作目录 。 用 WORKDIR 指定的工作目录 , 会在构建镜像的每一层中都存在 。 (WORKDIR 指定的工作目录 , 必须是提前创建好的) 。
docker build 构建镜像过程中的 , 每一个 RUN 命令都是新建的一层 。 只有通过 WORKDIR 创建的目录才会一直存在 。 格式:
WORKDIR <工作目录路径>
USER用于指定执行后续命令的用户和用户组 , 这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在) 。 格式:
USER <用户名>[:<用户组>]
我们自定义的Dockerfile内容结构大致如下:FROM openjdk:8MAINTAINER xiaobaoqiang # Add the service itselfARG JAR_FILEADD ${JAR_FILE} "/root/nacos-discovery-provider.jar"ENTRYPOINT ["java", "-jar", "/root/nacos-discovery-provider.jar"]EXPOSE 8081
- FROM是指从哪个基础镜像开始构建我们自己的镜像 , 这里我们使用openjdk版本1.8;
- MAINTAINER是指制作该镜像的作者;
- ARG构建参数 , 这里我们使用了JAR_FILE , 该参数是从Maven的dockerfile-maven-plugin插件传递过来的;
- ADD将Mavne打包后的jar文件复制到Docker容器中;
- ENTRYPOINT是指容器启动时需要运行的程序指令;
- EXPOSE是指容器启动后需要暴露的端口 , 该参数一般情况下与springboot配置文件中的server.port保持一致;
mvn clean package
验证结果
看到如上日志信息 , 则表示我们打包构建Docker镜像成功 。
[root@instance01 ~]# docker images | grep nacos-discovery-provider10.0.0.10:5000/nacos-discovery-provider0.0.165dcbdd919212 minutes ago554MB
通过docker命令可以查看我们刚构建的容器镜像 。通过这种Mavne插件和Dockerfile再结合jenkins就可以完全实现CI/CD持续集成持续发布功能 , 大大缩短我们在敏捷项目中的发布时间 , 提升我们的工作效率 。
【小暖男石头哥|微服务架构中将SpringBoot项目打包Docker镜像】不积跬步 , 无以至千里;不积小流 , 无以成江海!
- 智通财经|| 远洋服务向港交所递表 在管面积约4230万平方米,新股消息
- 【】淄博这家税务局主动服务 助一湖北籍纳税人退税近40万
- 央视新闻客户端|田间地头到跨境物流,China服务安排上了
- 第一财经|住建部:房地产经纪机构应对住房租赁服务项目实行明码标价
- 央视网|直通服贸会 | 加强“一带一路”服贸合作 促进服务转型升级
- 央视网|带你逛服贸 | 文化服务专题展 规模大、颜值高、创意多
- 9月7日|远洋集团拟分拆远洋服务赴港上市 持股份额将不低于五成
- 物业|远洋集团拟分拆远洋服务赴港上市 持股份额将不低于五成
- 服务|快看 | 58同城特别股东大会通过私有化协议,获75%得票比例
- 央视新闻|第三届“一带一路”服务贸易合作论坛举行