在Visual Studio中的docker-compose.yml文件中设置网络的最佳方法?

时间:2017-11-21 23:05:46

标签: docker docker-compose dockerfile

我要做的是创建类似于以下内容的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中编译它时,我收到一个错误。也许我做错了,但我的理解是每个服务都会产生自己的容器。这两个容器都在主机映像上。我应该在两种服务上将图像设置为相同吗?

非常感谢任何帮助!

1 个答案:

答案 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

TraefikHAProxy,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