我正在使用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> sh
和env
,它正确显示了环境变量。
但是,当运行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。
1条答案
按热度按时间xfb7svmp1#
Sping Boot 的Docker Compose支持不会使用Docker Compose启动Spring Boot应用程序。它只是运行应用程序正在使用的服务,如数据库或消息传递系统。
因此不使用环境变量。
您必须在开发application.properties文件(可能使用配置文件)中配置应用程序,或者在IDE的运行配置中配置应用程序。