【问题标题】:Environment variable is ignored on Docker composeDocker compose 上忽略环境变量
【发布时间】:2022-01-03 19:12:33
【问题描述】:

在我的 docker-compose 中,我有几个变量要传递给我的 Spring Boot Kotlin 模块。我的docker-compose.yml 的一部分是

version: '3.9'
services:
  tomcat:
    image: backend:latest
    ports:
      - "8080:8080"
      - "5005:5005"
    container_name: tomcat
    environment:
      my-app_env_one: something
      spring_datasource_username: user

my-app_env_one 在我的模块中不可用,但spring_datasource_username 仍然可用。我究竟做错了什么?我是 Docker 新手,如果我完全错了,我很抱歉。所以图像现在正在运行,但我不知道为什么我没有得到变量。

【问题讨论】:

    标签: spring-boot kotlin docker-compose environment-variables


    【解决方案1】:

    环境变量cannot use-在其名称中。

    在任何 linux 机器上尝试这个以复制错误:

    export my-app_env_one=aaa

    你会得到这个错误:

    - 更改为_

    my-app_env_one -> my_app_env_one
    

    您还可以在 Spring Boot 中启用 debug=true 或检查您的容器 docker inspect app_name 以获取更多详细信息。

    【讨论】:

    • 谢谢。这就是问题所在。我仍然不知道为什么它以前工作。所以我认为这一定是码头工人和我自己的码头工人形象。谢谢
    • #1 不客气。出于研究目的,在没有 docker 的情况下,您可以使用纯 shell 导出变量“my-var”并验证 spring boot 是否能够读取它。 #2 另外为了帮助后代,您可以将标题更改为如下内容:环境变量在 docker compose 上被忽略。并去掉所有与tomcat相关的东西,因为不是tomcat错误,spring boot,kotlin。还要加一个标签:环境变量
    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 2022-01-01
    • 2018-02-03
    • 2019-02-25
    • 2022-06-11
    • 1970-01-01
    • 2012-09-05
    • 2019-07-26
    相关资源
    最近更新 更多