【发布时间】:2020-02-19 16:10:43
【问题描述】:
我正在尝试从我部署到 heroku 的 docker 应用程序连接到我配置的 heroku postgres 数据库(不是 docker 映像)。当我推送到 heroku 时,图像构建良好,但是当应用程序启动时出现错误。似乎 JDBC_DATABASE_URL 没有被注入到 docker 容器中,但我不知道如何让它工作。
这是我的代码:
heroku.yml
build:
docker:
web: Dockerfile
Dockerfile
FROM openjdk:8-jdk-alpine
COPY build/libs/myapp-0.0.1-SNAPSHOT.jar app.jar
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
application.properties
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url=${JDBC_DATABASE_URL}
spring.datasource.username=${JDBC_DATABASE_USERNAME}
spring.datasource.password=${JDBC_DATABASE_PASSWORD}
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.show-sql=true
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto=update
例外
java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${JDBC_DATABASE_URL}
【问题讨论】:
-
也许你应该了解一下 Docker 和 Spring-Boot。顺便说一句,你得到这个
RuntimeException是正常的,名为{JDBC_DATABASE_URL}的变量被调用但从未创建过。 -
谢谢你,@Zorglube。你能给我指出一个资源,在那里我可以学习如何创建变量,这样我就不会得到异常?
标签: java spring spring-boot docker heroku