我对docker很陌生。我正在尝试部署多容器Web API项目。 我遵循https://medium.com/@kkajasu/deployment-in-azure-for-one-container-dbe4e8e031c1这样的方式。通过这种方式来管理多容器。请给我一些想法。谢谢
答案 0 :(得分:1)
创建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应用程序只能公开端口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"
}
}