![](/img/trans.png)
[英]Docker-compose doesn't copy Test files from local folder into Container , but copies everything else
[英]Why can't web app in docker-compose, connect to another container in the same compose?
我有一个 docker compose 文件,其中至少有 2 个 tomcat 容器:(注意,这不是有效的 docker-compose,只是一个模板)
version: "3"
services:
restapidependencies:
xxxxxx
restapi:
image: tomcat:8.0-jre8
depends_on:
- restapidependencies
ports:
- "8888:80"
command: catalina.sh run
web:
image: tomcat:8.0-jre8
depends_on:
- coreservices
ports:
- "7777:80"
command: catalina.sh run
一个是 RESTful api,另一个是基于 javascript (angularJS) 的 Web 应用程序。 restapi
依赖的其他服务有 X 个(数据库、redis 等)。 rest api 使用 docker-compose.yaml 中定义的服务名称成功连接到其依赖项,但是, web
服务内的应用程序无法连接到restapi
服务。 也就是说,当我docker exec
进入web
容器时,我可以成功地使用curl
向restapi
发出请求。
是否有一个已知的场景,即 javascript 应用程序无法连接到同一个 docker-compose.yml 中的 docker 容器。
PS:我没有开发运行web
的应用程序,所以我对它可能做的任何特殊事情的了解有限,我的前端开发人员给了我一个解释:“网络应用程序在浏览器内运行”,这是有道理的。 一些想法:这是否意味着 Web 应用程序也无法访问 localhost? 即使是这种情况,docker compose 创建了一个容器网络,因此在同一个应用程序中不会共享本地主机,从技术上讲, web
正在调用一个完全不同的 ip,而不是本地主机。
我 docker exec 进入 web 容器,我可以成功地使用 curl 向 restapi 发出请求
那么你的RESTAPI是从Web容器访问。 所以它看起来像一个错误的配置。
尝试获取一个日志输出,告诉您连接失败的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.