1.准备好构建镜像需要的文件
文件地址 /home/latticy/
conf 存放application.yml
2.编写 Dockerfile 文件
#添加Java启动的必要镜像
FROM java:8
#将本地文件挂载到当前容器
VOLUME /tmp
#复制jar文件和配置文件所在的目录到容器里
ADD 你的jar包.jar /app.jar
ADD conf /conf
#声明需要暴露的端口
EXPOSE 5000(application的端口)
#不晓得哪儿copy的 也不记得是干啥的了
RUN bash -c 'touch /app.jar'
#配置容器启动后执行的命令,并指定使用项目外部的配置文件
"--spring.config.location=/conf/application.yml" 指定配置文件
ENTRYPOINT ["java", "-Xms256m", "-Xmx256m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar", "--spring.config.location=/conf/application.yml"]
3.构建镜像并运行
# 在Dockerfile的目录下 -t后面是镜像名和版本
docker build -t latticy:1.0 .
# 运行 挂载才能在容器外部修改配置 关键步骤
docker run -d -p 8500:5000 -v /home/latticy/conf:/conf --name my_latticy latticy:1.0
每次修改后都需要重启容器
docker restart myapp
3.总结
1. 首先要在构建镜像的 Dockerfile 文件中启动 jar 的命令里加上
–spring.config.location=/conf/application.yml
指定使用容器里的 /conf/application.yml 作为项目的启动配置文件
2. 使用 docker run 构建容器的时候, 使用 -v 命令把 /conf 目录挂载到宿主机的指定位置