Docker 在容器中运行springboot的jar包,挂载外部yml配置文件
1、创建Dockerfile
FROM java:8 #EXPOSE 8900
ADD springboot.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/data/java/config/application-dev.yml"]
FROM java:8:使用jdk8作为基础镜像
EXPOSE 8900:暴露容器的8900端口
ADD springboot.jar app.jar:将复制指定的java.jar为容器中的app.jar,相当于拷贝到容器中取了个别名
RUN bash -c ‘touch /app.jar’: 创建一个新的容器并在新的容器中运行命令
ENTRYPOINT[]:相当于在容器中用cmd命令执行jar包
2.Dockerfile配置文件
主要是jar包的运行方式,注意看最后一个ENTRYPOINT
参数中的 --spring.config.location
,这里表示运行的时候动态扫描加载某个目录下的配置文件。我们使用docker build
将jar
包打好镜像后,继续看第二步
3.运行docker容器命令,主要是挂载目录
假设镜像名字和版本为 springboot:2019,使用下面命令创建
docker run -dit \ --name springboot\ -p 8900:8900 \ -v /home/springboot/config:/data/java/config \ springboot:2019
我们将linux宿主机上的/home/config/config目录挂载到容器中的/data/java/config目录,大家发现没,第一步的Dockerfile文件中的配置的扫描目录就是/home/config/config目录下的application-dev.yml配置文件,这样我们直接可以修改宿主机上的application-dev.yml配置文件,从而就是修改了容器中的application-dev.yml配置文件,所以我们再重新restart启动的时候,可以发现,扫描的内容就是我们修改之后的。
因为挂载目录是可以将宿主机上的文件和容器中的文件进行交互的,简单来说就是共享同一个文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
2019-05-12 js加减乘除函数