【发布时间】:2021-01-29 20:48:10
【问题描述】:
我有一个在 Docker 中运行的 Postgres 服务器。在这个 Postgres 服务器中,我有一个名为“aa”的数据库。
我还有一个 Spring Boot 应用程序的 Docker 映像。在 Docker 中执行此映像时,应在数据库 'aa' 中创建数据库表。
为了实现这一点,我执行了以下步骤:
-
在 Docker 中运行 Postgres 服务器
docker run --name PostgresServer --e POSTGRES_PASSWORD=*** -d Postgres
-
输入 PostgresServer 然后创建数据库 'aa'
sudo docker exec -it PostgresServer psql -U postgres
创建数据库 AA;
3. 运行 Sprint Boot Docker Image(这就是问题所在)
docker run -v /Users/juancesard.pineda/Desktop/brapi:/home/brapi/properties -d brapicoordinatorselby/brapi-java-server:v2
-
我检查了日志:它说数据库 'aa' 不存在,显然它存在于 Postgres 服务器中
org.postgresql.util.PSQLException: FATAL: 数据库“aa”不存在
一些附加信息:
-
Docker 监听 8080 端口
-
Postgres 服务器侦听端口 5432
-
我的 application.properties 文件如下所示:
server.port = 8080 server.servlet.context-path=/Users/juancesard.pineda/Desktop/brapi/application.properties/germplasm
spring.datasource.url=jdbc:postgresql://host.docker.internal:5432/aa spring.datasource.username=postgres spring.datasource.password=jcpineda
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.show-sql=false spring.jpa.properties.hibernate.hbm2ddl.import_files=sql/crops.sql、sql/lists.sql、sql/locations.sql、sql/people.sql、sql/programs.sql、sql/trials.sql、sql/ seasons.sql、sql/studies.sql、sql/breeding_methods.sql、sql/germplasm.sql、sql/attribute_defs.sql、sql/attribute_values.sql、sql/seed_lots.sql、sql/observation_units.sql、sql/crosses。 sql, sql/pedigree.sql, sql/events.sql, sql/images.sql, sql/observation_variables.sql, sql/observations.sql, sql/samples.sql, sql/allele_calls.sql, sql/genome_maps.sql, sql/references.sql, sql/vendor.sql
spring.mvc.dispatch-options-request=true
我的 application.properties 文件中是否缺少一些配置?
提前谢谢你
【问题讨论】:
-
保持sql独立于spring boot,你可以创建扩展postgres的docker镜像并在启动时执行你的sql,否则如果你使用flyway它会为你做的
-
我认为
application.properties文件通常是文本文件;您已将图像附加到您的问题中。您能否重写问题,列出您以纯文本而不是屏幕截图形式运行的相关源代码和命令?
标签: postgresql spring-boot docker