在创建docker容器的Spring Boot中将环境变量传递给application.properties的正确语法是什么?

时间:2018-05-16 20:12:09

标签: docker spring-boot environment-variables

当我运行容器时,我想将环境变量从我的docker容器传递给我的Spring Boot application.properties。我有以下application.properties文件。

#application.properties
spring.datasource.url=${SPRING_DATASOURCE_URL}
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver

我的用于创建容器的docker命令如下所示:

docker run -d -p 8080:8080 -e SPRING_DATASOURCE_URL:'<my url>' -e SPRING_DATASOURCE_USERNAME:'<my username>' -e SPRING_DATASOURCE_PASSWORD:'<my password>' -e --name mycontainer  mycontainer

容器粉碎:Caused by: java.lang.IllegalArgumentException: URL must start with 'jdbc'

什么是正确的语法?

1 个答案:

答案 0 :(得分:2)

docker run命令中存在语法错误:

-e SPRING_DATASOURCE_URL:'<my url>'

您必须使用=符号进行环境变量分配,而不是:

-e SPRING_DATASOURCE_URL='<my url>'