Dockerfile 将springboot项目jar包打成镜像,并将yml配置文件外挂。

# 以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 FROM 就是指定 基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。
FROM centos:7
# 声明作者
MAINTAINER developer
# 在构建镜像时执行脚本
RUN yum -y install java
# 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。
WORKDIR /opt/
# 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
# 仅仅只是声明端口。
EXPOSE 8899
# 类似于 RUN 指令,用于运行程序
# 优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。
# 注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]

上面用到的复制指令为COPY,还有一个命令为ADD,ADD 指令和 COPY 的使用格类似(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:

  • ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
  • ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

去掉注释:

FROM centos:7
MAINTAINER developer
RUN yum -y install java
WORKDIR /opt/
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
EXPOSE 8899
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]

Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器相关推荐

  1. Springboot 项目中 xml文件读取yml 配置文件

    2019独角兽企业重金招聘Python工程师标准>>> 在xml文件中读取yml文件即可,代码如下: 现在spring-boot提倡零配置,但是的如果要集成老的spring的项目,涉 ...

  2. 父项目下复制子项目,yml配置文件变粉红解决办法

    父项目下复制子项目,yml配置文件变粉红,没有提示功能 复制子项目 yml配置文件出现问题,变成粉红色 在软件开发过程中,由父项目负责管理各种依赖版本,子项目继承父项目,在引入依赖时,可以不用管理依赖 ...

  3. SpringBoot启动如何加载application.yml配置文件

    一.前言 在spring时代配置文件的加载都是通过web.xml配置加载的(Servlet3.0之前),可能配置方式有所不同,但是大多数都是通过指定路径的文件名的形式去告诉spring该加载哪个文件: ...

  4. idea 创建springboot项目的资源文件application.yml的图标显示不正常

    按Settings图示位置查看下text下有无yml或是yaml,并在下面的YAML里添加这两项.因为spring-boot-starter-parent里说明了:

  5. springboot项目需要读取非application.yml/properties 的配置文件

    目录: 1.操作步骤 2.总结 3.扩展 4.第二种方法获取配置文件bean 1.操作步骤 1.新建配置文件: 2.编辑配置文件: test-server=rd-dev02.jr.rong360.co ...

  6. 解决SpringBoot项目中遇到的数据库连接yml文件配置问题

    今天遇到了一个报错 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasou ...

  7. 【SpringBoot】项目打成 jar 包后关于配置文件的外部化配置

    在未进行任何处理的情况下,SpringBoot 会默认使用项目中的 application.properties 或者 application.yml 来读取项目所需配置. 我这里只记录几种自己所用到 ...

  8. 小记,springboot项目中自己常用的logback配置文件

    把配置文件放到resources这个classpath目录即可生效,日志输入样式是从springboot中日志配置中copy过来的, 其他常用配置不做过多注释了. logback-spring.xml ...

  9. springboot添加多个properties或者yml配置文件

    原始配置文件application.properties内容如下: djg.name=DJG djg.age=22 djg.desc=${lyw.name} is a boy #时间格式化 sprin ...

最新文章

  1. html select以数组的方式提交
  2. 【错误总结】Git- remote:error: this exceeds GitHub file size limit of 100.00 MB
  3. 送你6份最新开源代码!含NLP、ML、计算机视觉方向(附代码论文)
  4. python selenium自动化断言_python+selenium自动化登录测试,设计不同场景进行登录,两种方式断言,截图保存...
  5. 【自动驾驶】26.【很清晰】旋转矩阵,欧拉角,四元数,旋转向量和齐次变换矩阵
  6. pixhawk软件架构
  7. 站长工具--IP地址库
  8. vs发布项目webconfig替换语法
  9. 小米笔记本Air 13.3 指纹版安装黑苹果 macOS High Sierra 10.13 教程
  10. mysql基础-基本的命令行操作
  11. Lower power design UPF 学习
  12. 教你使用JAVA代码重启路由器(TP-LINK)
  13. LIME-论文阅读笔记
  14. (C语言代码分享):车辆信息管理系统源代码来了。
  15. Android studio突然报错Entry name ‘META-INF/androidx.vectordrawable_vectordrawable.version‘ collided的解决办法
  16. html怎么自动弹出模态框,纯CSS实现带点击模态框外部自动关闭的模态框
  17. CF1238E Keyboard Purchase
  18. 物联网卡发展历程与发展趋势
  19. jmeter性能使用笔记
  20. 冀教版五年级计算机教学计划,冀教版信息技术五年级下册教学计划.doc

热门文章

  1. linux环境下nacos的安装+启动,阿里云服务器安装nacos
  2. 2022-2028年中国康养旅游行业市场竞争力分析及发展策略分析报告
  3. Gin 框架学习笔记(03)— 输出响应与渲染
  4. 2017 年已读书单总结
  5. 多个错误多个tryexcept的处理异常处理
  6. 笔记本电脑的有线和无线网络同时使用,如何设置?
  7. TensorFlow+TVM优化NMT神经机器翻译
  8. 部署可扩展的目标检测管道:推理过程(下)
  9. ARMed解决方案对DSP的战争
  10. CVPR2018论文看点:基于度量学习分类与少镜头目标检测