spring-boot - Spring Boot 无法读取 docker-compose 环境变量
问题描述
我在这里遇到了一个“无聊”的问题。让我解释...
我正在尝试在我的 Application.properties 中从我的 docker-compose 中读取一些“环境变量”。
虽然,我在容器中正确创建了 env 的变量(当我检查容器时我可以看到),但它们并没有从 Spring Boot 应用程序中读取。
它有点,这些“docker-compose 环境变量”,似乎“不可访问”。
我正在做一个 TEST (); 所以,我试图在我的 Spring 应用程序中获取一个环境变量,它导致'null',例如:
@Slf4j
@SpringBootApplication(exclude = R2dbcAutoConfiguration.class)
public class AppDriver {
public static void main(String[] args) {
System.out.println( "container variables >>>>> " + System.getenv("MASTER_URL") );
SpringApplication.run(AppDriver.class,args);
}
日志是:
容器变量 >>>>> null
下面,它们是我的 docker-compose(我在 docker-compose [暂时] 中没有任何 Spring 引导服务):
version: "3.5"
services:
tenant1:
image: postgres
ports:
- "5432:5432"
restart: always
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: tenant1
POSTGRES_USER: user
volumes:
- ./data/tenant1:/var/lib/postgresql
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
MASTER_URL: r2dbc:mysql://user:password@localhost/master
MYSQL_ROOT_PASSWORD: mysecret
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: master
我的 Application.properties:
logging.level.com.example=DEBUG
logging.level.io.r2dbc=DEBUG
master.url = ${MASTER_URL}
最后,我的 Java 文件:
@Configuration
//@ConfigurationProperties(prefix = "master")
@EnableR2dbcRepositories(entityOperationsRef = "masterEntityTemplate")
public class MasterConfig {
@Value("${master.url}")
private String url;
@Bean
@Qualifier(value = "masterConnectionFactory")
public ConnectionFactory masterConnectionFactory() {
System.out.println(">>>>>>>>>>>" + url);
return ConnectionFactories.get(url);
//.get("r2dbc:mysql://user:password@localhost/master");
}
那是我要犯的最后一个错误:
原因:java.lang.IllegalArgumentException:无法解析值“${MASTER_URL}”中的占位符“MASTER_URL”
有人知道如何解决这个问题吗?
非常感谢
解决方案
推荐阅读
- json - 如何在反应js中映射这个给定的json数据
- c# - 当隐藏层超过 1 个时,神经网络不学习
- python - 嵌套循环的时间复杂度取决于外循环
- php - Laravel 未在自定义页面中显示结果
- java - 在java中解码和编码回base64时看不到图像
- c# - 找不到 Libsodium 异常方法 C#
- interrupt - Freertos和uart发送中断的必要性
- react-native - react-native-sensitive-info 字符串在 getItem 中被表示为未定义
- android - Android Studio 布局渲染问题
- xml - XSD 到 XML 转换