java - Mysql 与 springboot 应用程序部署在 Docker windows 桌面错误
问题描述
我是一个新的 docker 应用程序用户,我一直在尝试使用 docker for windows 部署我的应用程序,我已经成功创建了 MYSQL 和应用程序图像/容器,并确认我的容器正在运行
**
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1776f9cc175c arkk-app "java -jar arkk-app.…" 21 hours ago Up 24 seconds 0.0.0.0:8085->8085/tcp arkk-app-container
01d1191cacfb mysql:8 "docker-entrypoint.s…" 22 hours ago Up About an hour 3
我还创建了一个网络 arknet,我的 app/mysql 容器在该网络上运行
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
但是,经过上述步骤后,我尝试在我的应用程序映像容器上运行日志,以验证我的代码是否正常工作,但出现以下错误。
PS C:\Users\LIFE 3\eclipse-workspace\Arkk> docker logs arkk-app-container
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]
**每当我将应用程序属性中的 (arkd) 容器 ID 更改为 LOCALHOST 时。然后应用程序似乎运行...
请注意:我正在使用我的本地数据库。我的本地数据库的名称是 arkkk,我在 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 应用程序中创建的停靠文件
FROM openjdk:8
ADD target/arkk-app.jar arkk-app.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar","arkk-app.jar"]
请帮助解决这个问题。谢谢
解决方案
推荐阅读
- java - 如何创建具有多个关键参数值的查询参数主体
- python - Scrapy - 将嵌套字典生成到 JSON 文件 - 不起作用
- eclipse - Eclipse WindowBuilder设计面板显示问题
- json - Excel JSON VBA解析 - 确定数组是否为空
- react-native - 删除反应原生 ScrollView 中的图像填充
- python - Macos python 3.9 idle IDLE 无法导入 Tkinter
- sas - 查找具有不同遭遇 ID 但匹配或相似日期的患者遭遇
- flutter - Flutter web,SliverAppBar浮动不起作用
- ssl - 使用 SSL 连接时与 MySQL 的连接丢失
- c++ - 将集从 Excel 导入 CPLEX