【问题标题】:Microsoft Azure Docker Compose with multiplay imagesMicrosoft Azure Docker Compose 与多重图像
【发布时间】:2020-03-23 09:54:04
【问题描述】:

在 Microsoft Azure 和 Docker 方面需要一些帮助。 我正在使用 App Service > Docker Compose(预览版)并尝试在他们的平台上创建正确的 docker compose 文件,以便我的 2 个图像可以在一个 docker compose 中运行。后端是用 Django 编写的,前端是用 React 创建的

version: '3.7'
services:
   backend:
     image: myrepo.azurecr.io/back:backend_v1
     environment:
       - WEBSITES_PORT=8000
   front:
     image: myrepo.azurecr.io/front:v1
     links:
       - backend
     environment:
       WEBSITES_PORT=3000

这是我的 docker-compose 的外观,在我在 azure 上运行它之后,我的网站正在运行,但只有后端。当我在 localhost:3000 下本地运行它时,有我的前端,在 localhost:8000 下有我的后端 但我不能让它在天蓝色上以这种方式工作。我的意思是理想情况下,在 mywebsite.../frond 和 mywebsite.../back 下进行访问会很棒,但我会采用您可以提供的任何解决方案来修改我的文件以使其工作?

【问题讨论】:

  • 还有问题吗?它解决了你的问题吗?或者你还想要什么?

标签: azure docker docker-compose


【解决方案1】:

对于您的要求,我认为您对 Azure Web App 有误解。 Azure Web App 只能向外部公开一个端口。这意味着如果您想将前端暴露在外部以便访问,那么后端是不可访问的。反之亦然。

而且您不应该在 docker-compose 文件中添加环境变量WEBSITES_PORT,您需要在门户中为 Web App 添加此环境变量:

或者像这样使用 CLI 命令:

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WEBSITES_PORT=port

因此,您的解决方案是选择一张您想要公开的图像以供访问,并为其设置环境变量WEBSITES_PORT。

【讨论】:

  • @NiewaszBiznes 如果您对此案有任何其他问题,请告诉我。我很高兴能帮助你。如果它解决了您的问题,请接受它作为答案:-)
  • 好吧,我有一点不同的问题,我在 Azure 上的 VM 上运行应用程序,网站在端口 300 上的 node.js 和端口 8000 上的 django,我必须在 URL 中提供端口例如,要查看前端部分,我必须访问 MYWEBSITE.southeurope.cloudapp.azure.com:3000 和后端 MYWEBSITE.southeurope.cloudapp.azure.com:8000。我该如何改变?所以它不需要端口来工作。
  • @NiewaszBiznes 我认为仅使用 Azure VM 是不可能的。因为 VM 有很多端口,如果不附加端口,则无法将请求路由到正确的端口。如果您使用 Web App,则无需在 URL 后面附加端口。
  • 是的,但我认为必须有某种方法来处理它,对吧?因为我认为没有人在 azure 或其他地方使用 VM,也没有想到解决方案吗?
  • @NiewaszBiznes 您可以尝试使用 Azure 应用程序网关。如果答案为您解决了问题,请接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 2020-12-28
  • 1970-01-01
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多