代码之家  ›  专栏  ›  技术社区  ›  ossentoo

如何使用docker compose在Azure web app for Containers上托管多个站点

  •  0
  • ossentoo  · 技术社区  · 4 年前

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

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

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

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

    在标准应用程序服务世界中,我们可以很容易地将虚拟目录部署到主应用程序,这很简单。

    然而,在使用容器时,这种模型似乎更复杂。

    我们该怎么办?我已经看过这份文件了: https://learn.microsoft.com/en-us/azure/app-service/containers/tutorial-multi-container-app 然而,在这个例子中,第二个容器是私有的,不会被暴露。

    我们应该使用docker compose文件吗(请举例)?或者,我们是否可以使用Azure DevOps任务以我想要的方式部署到viritual目录。这是我们用于单容器部署的任务:

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

    0 回复  |  直到 4 年前
        1
  •  1
  •   Charles Xu    4 年前

    根据您的要求,Web App For Container也是一种Web App服务,如您所见,它只能向外部(互联网)公开一个容器,其他容器是私有的。因此,如果你想使用多容器Web应用程序来部署图像以访问多个端点,如主站点和API站点,那么你的目标就不可能实现。

    根据Web App的特性,它只向外部暴露一个容器,为了实现你的目的,你可以做的就是在代码中或通过Nginx等工具自己创建一个映像和到端点的路由。然后将其部署到容器Web应用程序。只有这样,您才能从一个应用程序服务访问多个端点。。

    推荐文章