如何在微软Azure上托管docker compose应用程序



我想将容器化Web应用程序部署到Microsoft Azure。因此,我编写了以下docker组成文件:

version: "3"
services:
frontend:
image: fitnessappcontainerregistry.azurecr.io/crushit:frontend
build:
context: ./frontend
dockerfile: Dockerfile
networks:
- crushit
ports:
- "80:3000"
restart: unless-stopped
wikihow:
image: fitnessappcontainerregistry.azurecr.io/crushit:backend-wikihow
build:
context: ./backend
dockerfile: ./services/WikiHow Service/Dockerfile
networks:
- crushit
restart: unless-stopped
training:
image: fitnessappcontainerregistry.azurecr.io/crushit:backend-training
build:
context: ./backend
dockerfile: ./services/Training Service/Dockerfile
networks:
- crushit
restart: unless-stopped
eventpublisher:
image: fitnessappcontainerregistry.azurecr.io/crushit:backend-eventpublisher
build:
context: ./backend
dockerfile: ./services/EventPublisher/Dockerfile
networks:
- crushit
restart: unless-stopped
accountservice:
image: fitnessappcontainerregistry.azurecr.io/crushit:backend-account
build:
context: ./backend
dockerfile: ./services/Account Service/Dockerfile
networks:
- crushit
restart: unless-stopped
proxy:
image: fitnessappcontainerregistry.azurecr.io/crushit:backend-proxy
build:
context: ./backend
dockerfile: ./proxy/Dockerfile
networks:
- crushit
ports:
- "5000:5000"
restart: unless-stopped
networks:
crushit:
driver: bridge

为了让应用程序发挥作用,必须将两个容器(前端、代理(暴露在外部。此外,所有容器都必须能够相互通信(因此,我为所有服务添加了一个自定义网络(。所有容器映像都存储在Azure容器注册表中。现在我想知道如何在Azure上托管我的应用程序。我已经试过";用于容器的Web应用程序";这与";"应用服务";我想。这并没有完全奏效,因为我无法揭露";非标准";港口大约5000。有没有其他方法可以使用这个docker compose文件在Azure上托管我的应用程序,或者我必须使用Kubernetes?

您可以使用docker-compose.yml文件在Azure Web App中部署容器。还有一些事情你需要知道。

首先,Azure Web App只能对外公开一个端口。所以这意味着你只能将一个容器暴露在外面,而不能将两个暴露在外面。

其次,如果您公开的端口不是80或443,那么您可以使用环境变量WEBSITES_PORT让Azure知道。这是文件。

第三,Web App只支持docker compose的一部分选项,在这里可以看到支持的选项和不支持的选项。

最后一个是Web应用程序中的所有容器都可以通过容器公开的端口进行通信。因此,您不需要设置network选项。

最新更新