我有一個基本的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, - 奧萊