2017-01-29 66 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