azure - 如何使用 Docker-Compose 将多个 Web Api 容器部署到 Azure
问题描述
我对码头工人很陌生。我正在尝试部署一个多容器 web api 项目。我遵循像 https://medium.com/@kkajasu/deployment-in-azure-for-one-container-dbe4e8e031c1这样的方式。这样如何管理多容器。请给我一些想法。谢谢
解决方案
创建 Web 应用程序时,您需要选择 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
请注意,Web App 只能公开端口 80 和 8080,因此如果您在多个容器中有多个 API,您的入口点很可能是 Ocelot 之类的 API 网关。您需要在 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"
}
}
推荐阅读
- python - Extract classes from MNIST dataset
- javascript - 将 JSON 读取到 HTML 表中
- angular - 带有超时的 Angular HttpClient 似乎什么都不做
- reactjs - Where should I put images files in React project?
- c - 使用 HP Fortify SCA 扫描 Linux 内核
- java - 如何从 Java 中具有 unicode 的文件中读取数据?
- apache-kafka - Kafka 消费者无法静默连接到代理
- java - 如何在动画结束时移动到另一个片段
- javascript - 如何从打字稿文件调用javascript函数
- java - Swagger 客户端问题:服务是否产生不一致的 JSON/XML 或者我做错了什么?