【发布时间】:2019-02-15 16:38:57
【问题描述】:
我有一个 Spring Boot 应用程序,它具有以下 application.properties:
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@ldap:something
spring.datasource.username=${USERNAME}
spring.datasource.password=${PASSWORD}
如您所见,它取决于一些环境变量。我的最终目的地是 docker 映像,但在此之前我运行 gradle build 任务 - 当然它失败了,因为它在环境变量中找不到 USERNAME 和 PASSWORD。
因此,我想将我的问题一分为二:
与
gradle build一起执行的gradle test任务是否应该尝试测试数据库连接?它在尝试引导 Spring Boot 应用程序时默认执行此操作 - 这就是我的gradle build任务失败的原因。不知何故,我认为这不是最佳选择 - 因为在我看来,单元测试不应依赖于任何外部因素,例如数据库连接。先运行
gradle build然后运行docker build是不是一个好主意?还是应该一口气完成所有事情?然后我至少可以在docker run上定义环境变量。但是话又说回来,我不想在不知道构建正常并且所有测试都已通过的情况下构建 docker 映像。
【问题讨论】:
标签: hibernate docker spring-boot gradle