2017-01-29 99 views
0

我的應用程序有三個容器:DB,前端的Web(反應),後端的API 我怎樣才能讓我的後端-API的地址在前端的Web如何訪問鏈接泊塢窗容器與宿主反應

這裏我撰寫文件

version: '2' 
services: 
    db: 
    image: postgres 
    ports: 
    - "5432:5432" 

    web: 
    build: . 
    stdin_open: true 
    volumes: 
     - .:/usr/src/app 
    ports: 
     - "3000:3000" 
    environment: 
     - API_URL=http://api:8080/ 
    links: 
     - api 
    depends_on: 
     - api 

    api: 
    build: ./api 
    stdin_open: true 
    volumes: 
     - ./api:/usr/src/app 
    ports: 
     - "8080:3000" 
    links: 
     - db 
    depends_on: 
     - db 

我不能得到的地址都API和process.env.API_URL

+0

給您的API容器的名稱和該名稱將自動可解析您的網站泊塢窗。所以如果你把它命名爲「myapp-api」,那麼http:// myapp-api將可以在web容器中訪問。 – cen

回答

0

我承認,你在web容器服務器只提供靜態HTMLS和不工作作爲api容器服務器的代理。

因此,一旦您將端口映射到主機,您可以使用主機名/ ip來查找api服務器。

如果你的主機名是app.myserver.dev,在你API_URL的環境變量,你可以使用下面的配置和泊塢窗將做的工作適合你:

 
    web: 
    build: . 
    stdin_open: true 
    volumes: 
     - .:/usr/src/app 
    ports: 
     - "3000:3000" 
    environment: 
     - API_URL=http://app.myserver.dev:8080/ 
    links: 
     - api 
    depends_on: 
     - api