我正在运行一个非常简单的SpringBoot应用程序,该应用程序使用Hibernate连接到PostgreSQL数据库。并运行两个Docker容器,一个是带有Tomcat映像的.war,另一个是带有postgresql映像的容器。
这是docker-compose文件:
version: '3'
services:
spring2:
build:
context: .
dockerfile: DockerfileTomcat
ports:
- 8080:8080
depends_on:
- db
networks:
- datalink
db:
image: postgres
ports:
- 5432:5432
env_file:
- psql.env
volumes:
- database:/var/lib/postgresql/data
networks:
- datalink
networks:
datalink:
driver: bridge
volumes:
database:
这是战争中的hibernate.cfg.xml:
<property name="dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbc:postgresql://db:5432/myappdb</property>
<property name="connection.username">admin</property>
<property name="connection.password">pass1234</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="(...).models.Employee"/>
因此,当我在主机中运行带有Eclipse的应用程序,连接到docker镜像时,它可以工作,但是当我使用Docker运行它时,使用docker compose,使用数据库连接和Hibernate的端点返回404。
最令人困惑的部分是没有错误出现。它只是说没有找到端点。
有人可以帮忙吗?
答案 0 :(得分:0)
我得到了它的工作,这实际上是我用Docker制作的一个错误。
每次我docker-compose up
时都使用相同的图像,所以我实际运行的.war文件不是我试图运行的版本。
我所做的只是docker-compose build
而且有效。