Docker:Dockerfile设置自带jdk8基础镜像 + 给springboot项目选用第二个application.properties

空白 或 
空白 或 
空白 或 
以上用于提示首行缩进,与内容无关。


参考:https://beginor.github.io/2018/03/11/healthy-check-instruction-of-docker.html
以上为参考链接,与内容无关。


1 背景:

  springboot工程中application.properties是用来配置工程的一些设置的,如数据库信息等,有时依据Dockerfile打包成image时须选另一个.properties文件,所以要在Dockerfile中添加一段 -D参数

2 过程:

  修改Dockerfile,详见代码

FROM fabric8/java-alpine-openjdk8-jdk

WORKDIR /usr/app/
VOLUME /tmp
COPY springboot_bootjar_gettedfile-0.0.1-SNAPSHOT.jar /usr/app
  
ENTRYPOINT java -jar -Dspring.profiles.active=stage springboot_bootjar_gettedfile-0.0.1-SNAPSHOT.jar
EXPOSE 8080

  其中,
  FROM fabric8/java-alpine-openjdk8-jdk:是设置的带jdk8的基础镜像,可以在Docker hub上寻找类似的基础image;
  WORKDIR:是container里的工作路径;
  VOLUME:是container自带的卷,在本image中基本无作用;
  COPY springboot_bootjar_gettedfile-0.0.1-SNAPSHOT.jar /usr/app
是把springboot生成的.jar包复制到container里的/usr/app路径下,以便启动container时可以跑这个.jar文件;
  ENTRYPOINT java -jar -Dspring.profiles.active=stage serviceregistry-0.0.1-SNAPSHOT.jar
“ENTRYPOINT”:指明container一旦启动首先运行什么;
“java -jar”:用jdk运行.jar包;
“springboot_bootjar_gettedfile-0.0.1-SNAPSHOT.jar”:要运行的.jar包;
“-Dspring.profiles.active=stage”:指定运行另一个.properties文件。
  EXPOSE 8080:指定container开放的端口,宿主机因该端口进入container内部,的一成功访问。(一般情况下,Docker默认已开启了8080)

springboot工程如下:

Docker:Dockerfile设置自带jdk8基础镜像 + 给springboot项目选用第二个application.properties_第1张图片
  其中,
application.properties文件:springboot initialzr中下载的模板里自带的;
application-stage.properties文件:自己仿照application.properties,更改一些变量的参数如mysql的url,账号,密码等。

3 结果:

  可以在一个springboot项目中配置2个application.properties文件,打包Docker image时可以根据不同的application.properties文件来打包出不同的image。


4 附带:

一、工程_根目录下文件夹的内容:

  下图为ubuntu系统中,工程目录下的docker文件夹中的准备文件,:
1、 Dockerfile:如前所言,生成Dockerfile镜像的文件;
2、 xxxx-SNAPSHOT.jar:image中所包含的.jar文件,要跑的springboot;
3、 sources.list:更改镜像的源,不过在这里不使用。Docker:Dockerfile设置自带jdk8基础镜像 + 给springboot项目选用第二个application.properties_第2张图片

二、生成Docker image的命令:

  建议直接在工程目录docker目录下执行:
在这里插入图片描述  docker build:执行build image的命令
  -t:制定生成的image的名称与标前(name:tag)
 this_is_name:1.0:“this_is_name”:生成的image的name,“1.0”生成的image的tag。(别忘了最后有个“.”号)

  结果如下:
在这里插入图片描述

三、运行Docker image的命令:

Docker:Dockerfile设置自带jdk8基础镜像 + 给springboot项目选用第二个application.properties_第3张图片如上:
1、 docker run:运行image的命令
2、 this_is_name:tag:镜像的全名(含tag)
3、-p:制定端口映射
4、9090:8080:9090:宿主机针对这个container(image运行以后生成)所开放的接口,8080:container内部开放给外部的接口。

四、运行Docker container的命令:

1、运行container:docker start
2、停止container:docker stop

五、删除Docker的命令:

1、删除image:docker rmi
2、删除container:docker rm

六、Docker的安全检查:

为了指导container是否在健康(正常)运行,可在Dockerfile中添加“健康检查”的命令:如下图:


Docker:Dockerfile设置自带jdk8基础镜像 + 给springboot项目选用第二个application.properties_第4张图片


如上图所示,可以在命令行中看到健康状态。
Dockerfile:
Docker:Dockerfile设置自带jdk8基础镜像 + 给springboot项目选用第二个application.properties_第5张图片

你可能感兴趣的:(Docker)