Docker 教程不适用于 springboot+mysql+react 应用程序

Posted

技术标签:

【中文标题】Docker 教程不适用于 springboot+mysql+react 应用程序【英文标题】:Docker tutorial not working for springboot+mysql+react application 【发布时间】:2020-04-24 03:52:57 【问题描述】:

我正在尝试使用 spring-boot、mysql 和 react 来熟悉 docker 和应用程序,我想运行这个示例:https://www.callicoder.com/spring-boot-mysql-react-docker-compose-example/(源代码的 github 存储库是:https://github.com/callicoder/spring-security-react-ant-design-polls-app。 我已将 database_user 和密码相应地更改为 mysql(用户:root 密码:无密码 -> 空白字段)

我使用 docker-compose up -d 来启动它。我没有收到任何错误,容器已制作并且现有图像,但在浏览器中我得到一个:尝试时无法访问此站点: localhost:3000 或 3001 或 127.0.0.1:3000 或 localhost:9090 。

我可以在 docker 中看到容器正在运行及其端口:https://imgur.com/a/pbTv4VI

这些端口也不起作用。我尝试使用我机器的虚拟盒子地址,它们不起作用。

我有 win10 HOME 并且我使用使用 https://medium.com/@mbyfieldcameron/docker-on-windows-10-home-edition-c186c538dff3 安装的 docker-toolbox(不是 docker 桌面) 编辑: 使用 docker logs (server_containerID) 我在服务器应用程序中发现了一个可能的问题:

java.sql.SQLException: Access denied for user 'root'@'192.168.192.3' (using password: NO)

但是,mysql 容器运行正常(我使用 docker run -e MYSQL_ALLOW_EMPTY_PASSWORD=1 mysql:8 运行它),它表明它可以连接/等待与服务器的连接。 关于如何访问该应用程序的任何想法?谢谢!

弄清楚了,地址显然是192.168.99.100:9090。

【问题讨论】:

我建议在没有-d 标志的情况下启动 docker-compose,这样您就可以看到这些容器日志并排除可能出现的问题。 【参考方案1】:

我克隆了那个存储库并运行了

docker-compose up -d

在我的机器上运行 docker 容器,

react-app 的 Docker 容器正在 9090 端口中运行,您应该在浏览器中点击 http://localhost:9090(NOT localhost:3000 等)。

由于您更改了 MySQL 凭据 - 应在 spring-boot 项目中的 docker-compose.yml 文件和 application.properties 文件中进行更改。

结果如下,

如果你仍然遇到问题,请尝试通过执行查看spring-security-react-ant-design-polls-app_app-server_1的日志,

docker logs -f spring-security-react-ant-design-polls-app_app-server_1

查看服务器日志 - 您可能会遇到问题。

【讨论】:

我已更改 docker-compose.yml 和 application.properties 文件以适合我的 mysql 服务器。但我仍然无法访问它,即使来自localhost:9090(我也尝试过) 您也看到日志了吗?那么 docker-compose 文件中的 SPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORD 属性呢? 请查看执行docker logs -f spring-security-react-ant-design-polls-app_app-server_1命令的日志 这里是我为mysql对项目github.com/Diana-Ioana/Docker所做的修改 @DianaG 似乎 mysql:8 给出了问题 - 您可以通过更改 mysql:5.7 来克服它

以上是关于Docker 教程不适用于 springboot+mysql+react 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose 日志记录不适用于 syslog 选项

Webpack DevServer HMR 不适用于 ngrok->docker

Elasticsearch 集群不适用于 Docker Swarm

Apache FileUpload 不适用于 springboot:ServletFileUpload.parseRequest 始终为空

Springboot WebSocket TextWebSocketHandler 不适用于 json 消息

Spring Cloud Config Server 不适用于 Docker 构建