Существует сеть Docker: docker network create nginx-proxy
Затем в контейнерах Docker работают два веб-сервера.
- первый контейнер, содержит веб-сервер, который предоставляет API (только дляиспользоваться другим приложением в той же сети докеров).Файл
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 из первого контейнера?