1

我想使用 docker compose 文件为我们的 Linux 托管站点部署多个公共端点。

我们已经部署了一个站点,该站点将图像存储在私有 ACR 上,并托管在 Azure App Service 上(使用 Web App for Containers)。它通过 Azure DevOps 部署并且运行良好。

然而,我们希望使用同一个站点来托管一个额外的组件,一个 api,以便我们最终得到这些端点:

如果可能,我们希望避免使用第二个应用服务或子域。我们更喜欢的架构是使用相同的 https 证书和端口(443)来托管 api。该网站和 api 共享一个相似的代码库。

在标准的应用服务世界中,我们可以很容易地为主应用部署一个虚拟目录,这很简单。

这个模型虽然在使用容器时似乎更复杂。

我们该怎么做呢?我已经看过这个文档:https ://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-multi-container-app 。然而,在这个例子中,第二个容器是一个私有容器——它不会被暴露。

我们是否应该使用 docker compose 文件(请提供示例)?或者,有没有一种方法可以使用 Azure DevOps 任务以我想要的方式部署到虚拟目录。这是我们用于单容器部署的任务:

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-containers?view=azure-devops

4

1 回答 1

1

根据您的要求,Web App For Container 也是一种 Web App 服务,如您所见,它只能将一个容器暴露给外部(Internet),而其他容器是私有的。所以如果你想使用多容器Web App来部署镜像访问主站点和API站点等多个端点,那么你的目的是不可能实现的。

根据Web App只对外暴露一个容器的特性,你可以做的就是在代码中或者通过工具,比如Nginx,只创建一个镜像并路由到endpoints . 然后将其部署到 Web App for Container。只有这样,您才能从一个 App 服务访问多个端点。

于 2020-04-20T02:52:46.023 回答