Docker+Spring boot为环境变量赋值的方法(普通变量和List变量)

 更新时间:2026年06月09日 09:51:42   作者:雨打夏夜  
本文详细介绍了在Docker容器中为SpringBoot应用应用设置环境变量的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在Docker容器中运行Spring Boot应用时,经常需要为应用设置环境变量。环境变量可以用来配置数据库连接、外部服务的URL以及其他任何需要在运行时配置的信息。在Docker中,可以通过多种方式为Spring Boot应用设置环境变量,包括在docker run命令中直接指定,或者通过Dockerfile中的ENV指令设置。

Docker+Spring boot为环境变量赋值

Spring boot开发微服务,使用yml做配置文件,Docker方式部署。

在不同环境中,需要对yml中的配置进行调整,本文主要介绍在以docker run方式运行时,如何为yml配置文件中的变量赋值。分为普通的环境变量、List变量。

若想通过docker run为yml中变量赋值,对Spring boot启动类有一个要求,主函数必须有String[] args参数:

@SpringBootApplication
public class Application implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

以下面的配置为例:

mqtt:
  uris: tcp://ip:1883
  username:
  password:
  client-id-prefix: ocal
  data-topics:
    list:
      - subscribe-topic: DataTopic
        publish-topics: /t/router/app/output
        framework-type: type1
      - subscribe-topic: /v1/message/request
        publish-topics: /v1/message/response
        framework-type: type2

有如下几种方式为上面的配置文件赋值:

方法一:使用下划线分隔大写形式

确保环境变量的格式与 YML 路径相匹配,并使用下划线分隔层级:

docker run --name computing \
  --restart=always \
  -e MQTT_URIS=tcp://127.0.0.1:1883 \
  -e MQTT_DATA_TOPICS_LIST_0_SUBSCRIBE_TOPIC=/v1/s1/data/input \
  -e MQTT_DATA_TOPICS_LIST_1_SUBSCRIBE_TOPIC=/v1/s1/message/input \
  computing:1.0

注意:

  • 环境变量的名称与 YML 文件中的路径相关联,使用下划线 _ 代替点 . 和中横线 -
  • 数组索引从 0 开始。

方法二:使用 SPRING_APPLICATION_JSON 传递 JSON 格式配置

使用 SPRING_APPLICATION_JSON 环境变量传递 JSON 格式的配置。这样可以确保复杂的嵌套结构被正确解析:

docker run --name pdstars-edge-computing \
  --restart=always \
  -e SPRING_APPLICATION_JSON='{"mqtt": {"uris": "tcp://127.0.0.1:1883", "data-topics": {"list": [{"subscribe-topic": "DataTopic", "publish-topics": "/t/router/app/outpu", "framework-type": "type1"}, {"subscribe-topic": "/v1/message/request", "publish-topics": "/v1/message/response", "framework-type": "type2"}]}}}' \
  computing:1.1.0

方法三:使用配置文件挂载

将配置文件保存在主机上,然后在运行容器时挂载到容器内部。例如,将新的配置文件保存在 /path/to/new-application.yml 中,然后使用 -v 参数挂载到容器内的默认配置路径:

docker run --name computing \
  --restart=always \
  -v /path/to/new-application.yml:/config/application.yml \
  computing:1.0

到此这篇关于Docker+Spring boot为环境变量赋值的方法(普通变量和List变量)的文章就介绍到这了,更多相关docker spring boot环境变量赋值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker启动mysql5.7服务详细说明

    docker启动mysql5.7服务详细说明

    这篇文章主要给大家介绍了关于docker启动mysql5.7服务的相关资料,文中通过代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友可以参考下
    2023-09-09
  • 部署安装docker及项目搭建所需要的基础环境实践(mysql、redis、nginx、nacos)

    部署安装docker及项目搭建所需要的基础环境实践(mysql、redis、nginx、nacos)

    本文介绍通过docker-run.sh和docker-compose.yml实现一键部署Docker及Web服务,解决环境不一致问题,包含MySQL、Nacos、Nginx等配置,并提供GitHub代码链接便于直接使用
    2025-07-07
  • 基于Docker 搭建WordPress的方法

    基于Docker 搭建WordPress的方法

    这篇文章主要介绍了基于Docker 搭建WordPress的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Docker 制作tomcat镜像并部署项目的步骤

    Docker 制作tomcat镜像并部署项目的步骤

    这篇文章主要介绍了Docker 制作tomcat镜像并部署项目 ,讲解如何制作自己的tomcat镜像,并使用tomcat部署项目,需要的朋友可以参考下
    2022-10-10
  • 详解Docker 国内镜像的配置及使用

    详解Docker 国内镜像的配置及使用

    这篇文章主要介绍了详解Docker 国内镜像的配置及使用 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • docker Nginx PHP-FPM单机多站点布署的方法

    docker Nginx PHP-FPM单机多站点布署的方法

    这篇文章主要介绍了docker Nginx PHP-FPM单机多站点布署的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • harbor修改配置文件后重启操作

    harbor修改配置文件后重启操作

    这篇文章主要介绍了harbor修改配置文件后重启操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • CentOS7虚拟机安装并配置docker套件

    CentOS7虚拟机安装并配置docker套件

    这篇文章主要介绍了CentOS7虚拟机安装并配置docker套件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Docker Nginx反向代理实现过程

    Docker Nginx反向代理实现过程

    本文介绍了如何使用Nginx实现反向代理,并与网关的代理功能进行对比,通过Docker安装Nginx,解决了容器中缺少vim编辑器的问题,详细记录了修改Nginx配置、启动微服务、验证反向代理的步骤
    2025-12-12
  • docker保存和加载tar及其tar.gz方式

    docker保存和加载tar及其tar.gz方式

    这篇文章主要介绍了docker保存和加载tar及其tar.gz方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04

最新评论