我创建了一个使用Hibernate和Spring启动的小应用程序。我在外部服务器上有MySQL数据库,有一些123.123.12.123
IP地址。
当我通过java -jar myapp.jar
运行此应用本地(在Windows上)时,没有问题,应用正在启动且一切正常。当我尝试在Docker中运行此应用程序时出现问题。应用甚至没有开始。有HibernateException:
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
我确定这是因为我无法连接到db。 (当我尝试连接本地并且db不可用时,我遇到同样的问题)。那么我该怎么做才能解决这个问题呢?这是我的application.properties
:
spring.datasource.url=jdbc:mysql://123.123.12.123:3306/szoplist_db
spring.datasource.username=root
spring.datasource.password=my_passwd
修改
我正在通过docker run -p 8080:8080 <IMAGE_ID>
运行码头图片。
Dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
具有相同Dockerfile和run命令的另一个应用程序(没有db)有效。