我要做的是创建类似于以下内容的Web应用程序堆栈:
http://172.68.54.44/web http://172.68.54.44/api
因此,在我的两个项目中,我可以通过“/ api”或“/ web”来引用它们。
下面是我的docker-compose.yml文件。
version: '3'
services:
web:
image: web
build:
context: ./Web
dockerfile: Dockerfile
depends_on:
- api
api:
image: api
build:
context: ./API
dockerfile: Dockerfile
我试图定义自己的网络,当我尝试在Visual Studio 2017中编译它时,我收到一个错误。也许我做错了,但我的理解是每个服务都会产生自己的容器。这两个容器都在主机映像上。我应该在两种服务上将图像设置为相同吗?
非常感谢任何帮助!
答案 0 :(得分:0)
Docker本身不提供基于URL信息将请求路由到容器的功能(第7层)。
合并应用程序的一种方法是拥有运行某种Web代理的第三个容器。第3个容器侦听所有Web请求,然后将<label style="display: block; float: right; width: 200px;">Spin:<input type="checkbox" id="spin" /></label>
路径的请求转发到/web
容器,并向web
容器请求/api
。
Traefik,HAProxy,Apache http,Nginx,Varnish,Squid都支持这种类型的请求路由,每个都有自己的附加功能。我不确定是否有任何可用于本机Windows容器。
api
HAProxy config:
version: '3'
services:
proxy:
image: haproxy
ports:
- '80:80'
- '443:443'
web:
image: web
build:
context: ./Web
dockerfile: Dockerfile
depends_on:
- api
api:
image: api
build:
context: ./API
dockerfile: Dockerfile