通过docker网络连接到Web服务

时间:2019-02-08 13:16:20

标签: docker docker-compose docker-networking docker-network

有一个码头网络:docker network create nginx-proxy

然后两个Web服务器在Docker容器中运行。

  • 第一个容器,包含一个公开API的网络服务器(仅由同一docker网络上的其他应用使用)。 docker-compose文件:
version: '3'

services:
  my-api:
    image: node:alpine
    volumes:
      - ./:/api
    working_dir: /api
    command: npm run start

networks:
  default:
    external:
      name: nginx-proxy
  • 第二个容器包含使用API​​的应用程序。 docker-compose文件:
version: '3'

services:
  my-app:
    image: node:alpine
    environment:
      API_URL: ???
    volumes:
      - ./:/app
    working_dir: /app
    command: npm run start

networks:
  default:
    external:
      name: nginx-proxy

在此nodejs应用程序的代码中的某处,它尝试使用以下代码连接到API:

const fetch = require('node-fetch')
const apiUrl = process.env.API_URL

const getSomethingFromApi = jsonArgs =>
  fetch(apiUrl, {
    method: 'post',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(jsonArgs)
  })
    .then(response => response.json())

如何在第二个容器中为应用配置docker文件以使用第一个容器中的API?

0 个答案:

没有答案