docker容器部署Spring Profile参数策略

本文介绍了如何在Docker环境下设置Spring Profile,包括通过Dockerfile、Docker run命令以及Docker Compose来定义和传递Profile。示例展示了如何在不同场景下激活特定的Spring Profile,以适应不同的部署需求。

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

1.通过Dockerfile定义Spring Profile

通常在命令行中我们可以使用“java -jar” 运行 Spring Boot应用。

而Profiles信息可以作为额外参数传递,比如“-Dspring.profiles.active=dev”

java -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -jar rest-api.jar

相似的,我们可以在Dockerfile中将Profile的信息作为参数传递进去,例如:

FROM java:8 
ADD target/my-api.jar rest-api.jar 
RUN bash -c 'touch /user-service.jar' 
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=dev","-jar","/rest-api.jar"]

需要注意最后的ENTRYPOINT一行,在这行中我们传递java命令以执行jar文件,所有需要的参数和值以逗号方式分隔传递。

“-Dspring.profiles.active=dev” 是我们定义dev profile的地方,我们可以替换dev为任何需要的名字。

2.通过Docker run命令定义Spring Profile

可以将spring profile作为环境变量传递给docker run命令,使用 -e 标记。

例如 -e “SPRING_PROFILES_ACTIVE=dev”会将dev profile传递给Docker容器

docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" --name rest-api 
dockerImage:latest

3.通过Docker Compose定义Spring Profile

如果基于DockerSwarm,或使用docker-compose.yml文件部署Docker镜像,Spring Profile可以通过docker-compose.yml文件的 environment 标签传递。

例如:

... version: "3" services: rest-api: image: rest-api:0.0.1 ports: - "8080:8080" environment: - "SPRING_PROFILES_ACTIVE=dev" ...

推荐阅读

大厂必备:ansible 自动化工具

推荐5款免费网盘,空间大不限速!

亲测好评:国产开源APM运维监控

APM钉钉告警二次开发pinpoint(附带源码)

Prometheus + Granafa 构建高大上的MySQL监控平台

高效开发:IntelliJIDEA的这些Debug技巧你都知道吗

声援Pandownload的同时,一定要懂法!

syncd一款高效开源的代码部署工具

高效开发:IntelliJIDEA的这些Debug技巧你都知道吗

运维必备:goreplay流量复制工具

一款SQL高效审计工具|解放DBA双手

实用技能:git子模块功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值