【发布时间】:2021-12-28 23:11:32
【问题描述】:
我有一个使用 H2 持久 DB 的 spring 应用程序,其中有一个文件位于我的机器上。
如果我在 docker 容器之外运行应用程序,则数据库不为空。如果我在 docker 中运行应用程序,数据库将变为空。我读了这篇文章:Connecting to an H2 Database in a Docker Container 并尝试添加卷。据我了解,码头工人可以将本地数据库文件保存在带有卷的容器中。但似乎我还没有让它工作,因为数据库仍然是空的。谁能帮帮我?
application.properties
spring.datasource.url=jdbc:h2:./TESTDB/test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto= update
spring.h2.console.enabled=true
spring.h2.console.path=/h2-ui
spring.h2.console.settings.web-allow-others=true
Dockerfile
FROM azul/zulu-openjdk-alpine:11
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
我这样运行容器:
docker run -v ./TESTDB:/TESTDB -p 8080:8080 test-container
【问题讨论】: