docker部署springboot项目jar包及挂载外部配置文件

这篇博客详细介绍了如何将jar包上传到服务器,并通过Dockerfile创建镜像,最后进行服务的部署。步骤包括定义Dockerfile,设置镜像的基础环境,挂载目录,添加jar包,创建配置文件目录,以及启动服务的命令。此外,还提供了打包和启动镜像的Docker命令,包括端口映射、容器命名和开机重启设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.上传jar包到服务器,目录自己自定义

在这里插入图片描述
在这里插入图片描述

2.创建Dockerfile文件

文件内容:

# 基础镜像
FROM  openjdk:8-jre
# author 作者
MAINTAINER abc

# 挂载目录,宿主机目录,我这里是jar包目录
VOLUME /home/test
# 指定路径,docker容器里jar包的目录
WORKDIR /home/test

# 添加jar到镜像并命名为test.jar
ADD test-1.0-SNAPSHOT.jar test.jar
#在docker容器里创建和宿主机同样的配置文件的目录, jar包要和config目录同级
CMD mkdir /home/test/config

# 启动服务
ENTRYPOINT ["java","-jar","test.jar"]

3.执行命令,打包镜像

打包镜像 命令:

docker build -t test .

后面的 . 别忘了,-t 后面是镜像的名字

启动命令:

docker run -d -p 45803:45803 -v /home/test/config:/home/test/config --name test --restart=always test

-d : 后台运行
-p : 映射出去的端口 :容器启动jar包的端口
-v : 宿主机目录:docker容器里的目录
–name : 启动镜像时容器的名字
–restart : 开机重启
test :镜像的名字

### 如何在Docker中启动Spring Boot项目并引用外部部署文件 为了实现这一目标,可以利用`spring-boot-maven-plugin`来构建可执行JAR,并通过配置Dockerfile指定环境变量或挂载卷的方式引入外部属性文件。 #### 使用Docker Compose加载外部YAML文件作为配置源 当运行容器化应用时,推荐做法是在创建镜像时不硬编码任何特定于环境的信息到镜像本身内。相反,应该让应用程序能够读取来自宿主机或其他服务端点的数据。对于Spring Boot来说,可以通过设置`SPRING_CONFIG_LOCATION`环境变量指向位于宿主机上的路径来达到此目的[^1]。 下面是一个简单的例子展示怎样编写Dockerfile以及docker-compose.yml: ```dockerfile # Dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"] ``` ```yaml version: '3' services: web: image: my-spring-app-image environment: SPRING_PROFILES_ACTIVE: prod SPRING_CONFIG_NAME: application,external-config SPRING_CONFIG_LOCATION: ./config/ volumes: - ./config/:/config/ ports: - "8080:8080" ``` 在这个案例里,假设有一个名为`application-prod.properties`的应用程序生产模式下的默认配置文件和另一个叫作`external-config.properties`的额外自定义配置文件都存放在本地机器的工作目录下`./config/`位置。这些文件会被映射至容器内部相同名称的位置以便被Spring Boot自动检测并加载[^2]。 此外,在实际操作过程中还需要注意权限管理方面的问题,确保所使用的用户有足够的权利访问对应的资源;另外就是网络连接情况,如果涉及到远程获取某些依赖项的话,则需保证相应的防火墙策略允许该类请求的发生。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值