当前位置: 首页 > 知识库问答 >
问题:

通过Dockerized Spring Boot应用程序填充Dockerized PostgreSQL数据库

琴俊良
2023-03-14

我有一个Postgres服务器运行在Docker内部。在这个Postgres服务器中,我有一个名为'aa'的数据库。

我还有一个Spring Boot应用程序的Docker映像。当在Docker中执行此映像时,应该在数据库'aa'中创建数据库表。

为了实现这一点,我执行了以下步骤:

创建数据库AA;

docker run -v /Users/juancesard.pineda/Desktop/brapi:/home/brapi/properties -d brapicoordinatorselby/brapi-java-server:v2

我检查了日志:它说数据库'aa'不存在,很明显它存在于Postgres服务器中

psqlexception:致命:数据库“AA”不存在

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/cropors.sql,sql/lists.sql,sql/locations.sql,sql/people.sql,sql/programs.sql,sql/trials.sql,sql/seasons.sql,sql/breeding_methods.sql,

spring.mvc.dispatch-options-request=true

我的application.properties文件中是否缺少某些配置?

事先谢谢你

共有1个答案

盛建德
2023-03-14

问题出在您的application.properties文件中。数据源url指向host.docker.internal。这只应在将一些东西从docker容器内部连接到主机上运行在docker外部的东西时使用(文档)。您需要一个不同的解决方案,因为您的Spring服务器和Postgres服务器都运行在docker容器内。

您需要一个Docker网络,特别是一个桥接网络,来连接您的不同容器。Docker桥接网络

试试这样的东西

 类似资料:
  • 问题内容: 我正在编写Web应用程序,并且想知道推荐的填充原始数据的方法是什么。这是JPA / Hibernate和Spring应用程序,由maven构建。到目前为止,我已经使用脚本将手工数据填充到数据库中,并填充了初始数据。 单元测试使用自己的数据,这些数据是在每次测试之前用代码创建的。我的测试类扩展了 org.springframework.test.jpa.AbstractJpaTests

  • 我正在使用PHP和SQL生成一个数组,该数组计算具有相同值的数据,以及这些值中有多少输出json_encode到: <代码>{“05”:4,“09”:4,“19”:4} Chart.js文件:(向下修剪) console.log输出 但是,如果我将罪行放入数据部分,它就不起作用了?

  • series(string $value,[ string $categories]) string $value $config = ['path' => './tests']; ​ $fileObject = new \Vtiful\Kernel\Excel($config); ​ $fileObject = $fileObject->fileName('tutorial.xlsx'); $

  • factory 辅助函数 必须 使用 factory 方法来做数据填充,因为是框架提倡的,并且可以同时为测试代码服务。 运行效率 开发数据填充时,必须 特别注意 php artisan db:seed 的运行效率,否则随着项目的代码量越来越大,db:seed 的运行时间会变得越来越长,有些项目多达几分钟甚至几十分钟。 原则是: Keep it lighting speed. 只有当 db:seed

  • 简介 Laravel 可以用 seed 类轻松地为数据库填充测试数据。所有的 seed 类都存放在 database/seeds 目录下。你可以任意为 seed 类命名,但是更应该遵守类似 UsersTableSeeder 的命名规范。Laravel 默认定义的一个 DatabaseSeeder 类。可以在这个类中使用 call 方法来运行其它的 seed 类从而控制数据填充的顺序。 编写 See

  • 问题内容: 我正在尝试使用我的Derby数据库数据填充Netbeans GUI-builder jTable。 我在Account.java类中使用以下代码: 理想情况下,我希望能够返回其中包含参数数据和列的tableModel,因为我知道在GUI中执行此方法是一种不好的做法。在线上的所有教程都没有显示如何将数据发送到另一个类,它们只是在GUI类中执行数据库代码。 我有一个错误,它看不到数据和列,