首页 > 解决方案 > 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"]

请帮助解决这个问题。谢谢

标签: javamysqlspring-bootcompiler-errorsdockerfile

解决方案


推荐阅读