Spring Boot 无法获取Docker容器中的环境变量值

xqk2d5yq  于 2023-08-04  发布在  Spring
关注(0)|答案(1)|浏览(173)

我正在使用REST API构建Sping Boot 应用程序。我使用Sping Boot 版本3.1.0-RC 1,来自Spring Milestone Repository。我们使用spring-boot-docker-compose来自动运行docker compose文件。
问题是,我在从docker容器获取环境变量时遇到了麻烦。Docker容器成功运行,通过执行docker exec -it <ContainerName> shenv,它正确显示了环境变量。
但是,当运行System.getenv(“”);或者SpringBoot中的@Value(${}),对于String值返回null,对于整数返回0。
这是docker-compose.yml文件。

version: '3.9'

services:
  file2vec-service:
    image: file2vecservice:latest
    ports:
      - "3033"
    environment:
      SPRING_PROFILES_ACTIVE: "production"
      <ENV_VAR1> : "xxx"
       etc...

字符串
请指教,谢谢。
我们尝试在终端中手动运行docker-compose up,发现它可以与System.getenv一起工作。但是,这违背了使用spring-boot-docker-compose的目的。
因此,我们试图找到一种通过spring-boot获取环境变量的方法:运行并使用spring的docker-compose。

xfb7svmp

xfb7svmp1#

Sping Boot 的Docker Compose支持不会使用Docker Compose启动Spring Boot应用程序。它只是运行应用程序正在使用的服务,如数据库或消息传递系统。
因此不使用环境变量。
您必须在开发application.properties文件(可能使用配置文件)中配置应用程序,或者在IDE的运行配置中配置应用程序。

相关问题