Dockerfile的构建镜像及ssl证书配置
前言
本篇文章主要记录如何在docker file中配置ssl证书
一、pom中配置docker插件
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<imageName>demo/demo-${active.profile}</imageName>
<!--指定docker配置文件路径 -->
<dockerDirectory>src/main/resources/docker</dockerDirectory>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</pugins>
</build>
二、Dockerfile配置
#基础镜像
FROM openjdk:latest
#定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。避免重要的数据,因容器重启而丢失,这是非常致命的。避免容器不断变大
VOLUME /tmp
#指定默认暴露端口, 这样在容器运行时可以知道应该映射哪些端口
EXPOSE 8080
#设置环境变量,环境变量只作用于Dockerfile内
ARG JAR_FILE=demo.jar
#将jar包添加到容器内部根目录
ADD ${JAR_FILE} demo_prod.jar
#将ssl证书添加到容器内cert文件夹下
ARG CERT_PATH=/cert/jssecacerts
ADD sslcerts/jssecacerts ${CERT_PATH}
#设置环境变量
ENV ENV_ACTIVE_PROFILE=dev
#配置证书命令: "-Djavax.net.ssl.trustStore=${CERT_PATH}","-Djavax.net.ssl.trustStorePassword=changeit"
#启动命令,在docker run时会执行
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=${ENV_ACTIVE_PROFILE}","/demo_prod.jar","--server.port=8080","-Djavax.net.ssl.trustStore=${CERT_PATH}","-Djavax.net.ssl.trustStorePassword=changeit"]
三、目录结构
四、证书生成
参考链接:https://blog.csdn.net/qq_40260565/article/details/122023412