Java 在Docker windows桌面上部署带有springboot应用程序的Mysql错误
我是一名新的docker应用程序用户,我一直在尝试使用docker for windows部署我的应用程序,我成功地创建了MYSQL和应用程序映像/容器,并确认我的容器正在运行 ** 我还创建了一个网络arknet,我的app/mysql容器在其上运行Java 在Docker windows桌面上部署带有springboot应用程序的Mysql错误,java,mysql,spring-boot,compiler-errors,dockerfile,Java,Mysql,Spring Boot,Compiler Errors,Dockerfile,我是一名新的docker应用程序用户,我一直在尝试使用docker for windows部署我的应用程序,我成功地创建了MYSQL和应用程序映像/容器,并确认我的容器正在运行 ** 我还创建了一个网络arknet,我的app/mysql容器在其上运行 PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker network ls
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker network ls NETWORK ID NAME DRIVER SCOPE
42dffaf576e3 Default Switch ics local
70bd03f5eff8 Primary Virtual Switch transparent local
abb7f62bb700 arknet nat local
112759e62dbc nat nat local
bdc9465104cc none null local
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker container run --network arknet --name arkk-app-container -p 8085:8085 -d arkk-app
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker container run --name arkinventory --network arknet -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=arkkk -e MYSQL_USER=root -e MYSQL_ALLOW_EMPTY_PASSWORD=True -d mysql:8
FROM openjdk:8
ADD target/arkk-app.jar arkk-app.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar","arkk-app.jar"]
但是,在完成上述步骤后,我尝试在应用程序映像容器上运行日志,以验证代码是否正常工作,但出现以下错误。
PS C:\Users\LIFE 3\eclipse workspace\Arkk>docker日志Arkk应用程序容器
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
**每当我将应用程序属性中的容器ID(arkd)更改为LOCALHOST时。然后应用程序似乎正在运行
请注意:我正在使用我的本地数据库。我的本地数据库名为arkk,在docker容器中创建的本地数据库名为arkinventory**
spring.datasource.url=jdbc:mysql://arkinventory:3306/arkkk?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# hibernate configurations
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialet = org.hibernate.dialect.MySQL5Dialect
# thumeleaf configurations
spring.thymeleaf.mode= LEGACYHTML5
spring.thymeleaf.cache=false
#Spring Security login queries
security.basic.enabled=false
spring.queries.users-query=select email, password, '1' as enabled from auth_user where email=? and status='VERIFIED'
spring.queries.roles-query=select u.email, r.role_name from auth_user u inner join auth_user_role ur on(u.auth_user_id=ur.auth_user_id) inner join auth_role r on(ur.auth_role_id=r.auth_role_id) where u.email=?
server.port=8085
下面的代码是我在spring boot应用程序中创建的文档
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker network ls NETWORK ID NAME DRIVER SCOPE
42dffaf576e3 Default Switch ics local
70bd03f5eff8 Primary Virtual Switch transparent local
abb7f62bb700 arknet nat local
112759e62dbc nat nat local
bdc9465104cc none null local
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker container run --network arknet --name arkk-app-container -p 8085:8085 -d arkk-app
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker container run --name arkinventory --network arknet -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=arkkk -e MYSQL_USER=root -e MYSQL_ALLOW_EMPTY_PASSWORD=True -d mysql:8
FROM openjdk:8
ADD target/arkk-app.jar arkk-app.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar","arkk-app.jar"]
请帮助解决此问题。谢谢您的
spring应用程序
容器和mysql db
容器是否在同一docker网络
中?请添加用于创建mysql
和应用程序容器的命令,以及应用程序错误的完整堆栈跟踪。您是否检查了数据库是否正在工作或未使用Workbench或其他工具?此外,无论您在那里发布的容器是什么,都没有运行。它们的状态是已退出
。您的spring应用程序
容器和mysql db
容器是否在同一docker网络
中?请添加用于创建mysql
和应用程序容器的命令,以及应用程序错误的完整堆栈跟踪。您是否检查了数据库是否正在工作或未使用Workbench或其他工具?此外,无论您在那里发布的容器是什么,都没有运行。它们的状态为退出。