Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器
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配置文件从外部挂入容器相关推荐
- Springboot 项目中 xml文件读取yml 配置文件
2019独角兽企业重金招聘Python工程师标准>>> 在xml文件中读取yml文件即可,代码如下: 现在spring-boot提倡零配置,但是的如果要集成老的spring的项目,涉 ...
- 父项目下复制子项目,yml配置文件变粉红解决办法
父项目下复制子项目,yml配置文件变粉红,没有提示功能 复制子项目 yml配置文件出现问题,变成粉红色 在软件开发过程中,由父项目负责管理各种依赖版本,子项目继承父项目,在引入依赖时,可以不用管理依赖 ...
- SpringBoot启动如何加载application.yml配置文件
一.前言 在spring时代配置文件的加载都是通过web.xml配置加载的(Servlet3.0之前),可能配置方式有所不同,但是大多数都是通过指定路径的文件名的形式去告诉spring该加载哪个文件: ...
- idea 创建springboot项目的资源文件application.yml的图标显示不正常
按Settings图示位置查看下text下有无yml或是yaml,并在下面的YAML里添加这两项.因为spring-boot-starter-parent里说明了:
- springboot项目需要读取非application.yml/properties 的配置文件
目录: 1.操作步骤 2.总结 3.扩展 4.第二种方法获取配置文件bean 1.操作步骤 1.新建配置文件: 2.编辑配置文件: test-server=rd-dev02.jr.rong360.co ...
- 解决SpringBoot项目中遇到的数据库连接yml文件配置问题
今天遇到了一个报错 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasou ...
- 【SpringBoot】项目打成 jar 包后关于配置文件的外部化配置
在未进行任何处理的情况下,SpringBoot 会默认使用项目中的 application.properties 或者 application.yml 来读取项目所需配置. 我这里只记录几种自己所用到 ...
- 小记,springboot项目中自己常用的logback配置文件
把配置文件放到resources这个classpath目录即可生效,日志输入样式是从springboot中日志配置中copy过来的, 其他常用配置不做过多注释了. logback-spring.xml ...
- springboot添加多个properties或者yml配置文件
原始配置文件application.properties内容如下: djg.name=DJG djg.age=22 djg.desc=${lyw.name} is a boy #时间格式化 sprin ...
最新文章
- html select以数组的方式提交
- 【错误总结】Git- remote:error: this exceeds GitHub file size limit of 100.00 MB
- 送你6份最新开源代码!含NLP、ML、计算机视觉方向(附代码论文)
- python selenium自动化断言_python+selenium自动化登录测试,设计不同场景进行登录,两种方式断言,截图保存...
- 【自动驾驶】26.【很清晰】旋转矩阵,欧拉角,四元数,旋转向量和齐次变换矩阵
- pixhawk软件架构
- 站长工具--IP地址库
- vs发布项目webconfig替换语法
- 小米笔记本Air 13.3 指纹版安装黑苹果 macOS High Sierra 10.13 教程
- mysql基础-基本的命令行操作
- Lower power design UPF 学习
- 教你使用JAVA代码重启路由器(TP-LINK)
- LIME-论文阅读笔记
- (C语言代码分享):车辆信息管理系统源代码来了。
- Android studio突然报错Entry name ‘META-INF/androidx.vectordrawable_vectordrawable.version‘ collided的解决办法
- html怎么自动弹出模态框,纯CSS实现带点击模态框外部自动关闭的模态框
- CF1238E Keyboard Purchase
- 物联网卡发展历程与发展趋势
- jmeter性能使用笔记
- 冀教版五年级计算机教学计划,冀教版信息技术五年级下册教学计划.doc