Как развернуть несколько контейнеров Web Api в Azure с помощью Docker-Compose - PullRequest
0 голосов
/ 14 мая 2019

Я довольно новичок в докере. Я пытаюсь развернуть мультиконтейнерный проект веб-API. Я следую примеру https://medium.com/@kkajasu/deployment-in-azure-for-one-container-dbe4e8e031c1. Таким образом, как управлять несколькими контейнерами. Пожалуйста, дайте мне несколько идей. Спасибо

1 Ответ

1 голос
/ 15 мая 2019

Когда вы создаете веб-приложение, вам нужно выбрать Docker Image, затем Docker Compose, затем реестр, где хранятся ваши изображения. Затем вам необходимо предоставить файл YAML, в котором вы определите образы контейнеров, а также имена и порты сети. Вот пример:

version: '3.4'

services:
  webapiconverter:
    image: myacr.azurecr.io/converter
    ports:
      - '80'
    restart: always

  webapiinventory:
    image: myacr.azurecr.io/inventory
    ports:
      - '80'
    restart: always  

  apigateway:
    image: myacr.azurecr.io/apigateway
    ports:
      - '80:80'
    restart: always

Обратите внимание, что веб-приложение может предоставлять только порты 80 и 8080, поэтому, если у вас есть несколько API в нескольких контейнерах, вашей точкой входа, вероятно, будет шлюз API, такой как Ocelot. Вам нужно будет определить маршруты в файле JSON. Вот пример:

{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/api/f_to_c?f={degrees}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "converter",
          "Port": 80
        }
      ],
      "UpstreamPathTemplate": "/api/converter/{degrees}"
    },        
    {
      "DownstreamPathTemplate": "/api/inventory/{sku}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "webapi",
          "Port": 80
        }
      ],
      "UpstreamPathTemplate": "/api/inventory/{sku}"
    }

  ],
  "GlobalConfiguration": {
    "BaseUrl": "https://backend.azurewebsites.net"
  }
}

Вот ссылка: https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/implement-api-gateways-with-ocelot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...