我有一个基本的Spring Boot Data JPA项目。我要连接的h2数据库位于/tmp/customerdb.h2.db
。当使用mvn spring-boot:run
运行应用程序时,一切正常。应用程序连接到数据库,添加记录,并将添加的记录打印到控制台。连接到Docker容器中的H2数据库
然后我建立一个码头集装箱,并运行它。泊坞窗文件看起来像这样:
FROM java:8
VOLUME /tmp
ADD jpa-docker-1.0.0.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar",/app.jar"]
当我运行的容器,我得到以下错误:
2015-06-12 19:25:57.200 WARN 1 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 42102, SQLState: 42S02
2015-06-12 19:25:57.200 ERROR 1 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Table "CUSTOMER" not found; SQL statement:
所以它看起来像应用程序无法看到数据库。连接URL如下所示: spring.datasource.url=jdbc:h2:/tmp/customerdb
正如我所提到的,这在docker容器外运行时工作正常。我假设Dockerfile VOLUME /tmp
中的行在容器中创建/tmp
目录以及它所包含的所有文件,以便数据库可见,但这似乎不起作用。思考?
TIA, - 奥莱