热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

SpringBoot+docker环境变量配置详解

这篇文章主要介绍了SpringBoot+docker环境变量配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结:

1.开发环境ide中启动项目

可以通过ide的环境变量参数配置,启动之后使用哪个配置,比如

这样就使用application-test.yml中的配置

2.通过gradle打包

可以通过-P参数来指定打包后的jar使用哪种环境来运行,比如

gradlew -Pprod bootWar

打包之后运行会使用prod中的配置;我的项目是jhipster生成出来的,现在需要添加test的环境配置,需求修改下项目的gradle文件,如下所示

添加一种属性配置,这里举例期间使用“aaatest”,这样打包测试环境的时候命令为:

gradlew -Paaatest bootWar

同时需要添加一个profile_test.gradle,可以拷贝一份prod的,然后修改下这个地方即可

def profiles = 'test'

具体的原理其实就是在打包的时候根据打包命令中的参数,判断当前是什么环境,如果是test环境,那么就替换掉application.yml中的#spring.profiles.active#参数为test,具体代码如下所示:

processResources {
  filesMatching('**/application.yml') {
    filter {
      it.replace('#project.version#', version)
    }
    filter {
      it.replace('#spring.profiles.active#', profiles)
    }
  }
}

在application.yml中可以看到这里是有个占位符的

3.docker打包

这里通过docker-compose来把应用打包成docker镜像的,这里可以通过指定环境变量参数

这个参数是会覆盖gradle中参数的,就是说即便你指定了gradlew bootWar -Pprod buildDocker,但是你docker-compose文件中的参数是active,那么docker启动的时候已然会使用test的环境配置;在这个地方也是卡了蛮久的;当然,docker还可以通过修改dockerFile的启动命令

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

或者通过docker run命令启动镜像的时候把参数加载进去

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

到此这篇关于SpringBoot+docker环境变量配置详解的文章就介绍到这了,更多相关SpringBoot docker环境变量内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 在进行离线环境下的程序更新时,由于无法直接访问远程仓库,因此需要手动迁移已登录设备的认证信息,以确保新设备能够正常访问和使用这些资源。 ... [详细]
  • 重新审视Kubernetes的必要性
    近期,我注意到不少人误以为我是Kubernetes的推广者。实际上,我只是分享了一些适合用Kubernetes解决的案例。本文旨在探讨Kubernetes的适用场景,并提供一些替代方案。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • Docker运行中实例端口映射调整方法
    本文探讨了在Docker容器运行期间调整端口映射的方法,包括前期规划与运行时需求变更两种常见场景下的解决方案。 ... [详细]
  • ArcBlock 发布 ABT 节点 1.0.31 版本更新
    2020年11月9日,ArcBlock 区块链基础平台发布了 ABT 节点开发平台的1.0.31版本更新,此次更新带来了多项功能增强与性能优化。 ... [详细]
  • 本文探讨了如何在Docker构建过程中使用动态环境变量,特别是针对Docker v1.9及以上版本的用户。我们将介绍如何声明和使用构建参数,以及这些参数对构建缓存的影响。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 本文介绍如何在阿里云环境中利用 Docker 容器化技术部署一个简单的 Flask Web 应用,并确保其可通过互联网访问。内容涵盖 Python 代码编写、Dockerfile 配置、镜像构建及容器运行等步骤。 ... [详细]
  • 深入理解Dockerfile及其作用
    Dockerfile是一种文本格式的配置文件,用于定义构建Docker镜像所需的步骤。通过使用`docker build`命令,用户可以将Dockerfile中的一系列指令转换成一个可执行的Docker镜像。 ... [详细]
  • 本文详细记录了使用 Docker 创建和管理自定义网络的命令,包括创建指定子网的网络、删除网络以及在指定网络中运行容器的具体操作。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
author-avatar
手机用户2502914467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有