首页 > 解决方案 > 在 Azure 应用服务中使用 docker-compose

问题描述

我的平均堆栈代码在 docker-compose 配置中工作。如果我docker-compose up在我的电脑上运行,那么我可以成功登录到我的应用程序localhost如果转到应用程序服务并单击 docker-compose 预览选项并上传我的 docker-compose.yml 文件。部署后,当我单击应用程序的 URL 时,我收到应用程序错误,我不知道为什么。也许我必须更改文件中的某些内容才能使其在不同的环境中工作?我很感激这方面的任何帮助!

我在某处读到,如果在同一订阅中使用 ACR,我不必提供用户名、密码或 url 详细信息,就是这样。因此,如果是这种情况,那么身份验证就不是问题。

前端 docker 映像和后端 docker 映像位于 azure 容器注册表中。当我在应用程序服务中设置 docker 时,我指向注册表来自 azure 的 docker 日志说

2020-02-19 15:08:20.257 INFO  - Starting multi-container app, configuration = 


2020-02-19 15:08:22.806 ERROR - Pull image threw Exception: Object reference not set to an instance of an object.
2020-02-19 15:08:22.806 ERROR - Pulling docker image  failed:
2020-02-19 15:08:22.806 ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
2020-02-19 15:08:22.806 ERROR - multi-container unit was not started successfully
2020-02-19 15:08:22.831 INFO  - Container logs from testinggc_backend_0_250edca0 = 
2020-02-19 15:08:28.902 INFO  - Stoping site testinggc because it failed during startup.
2020-02-19 15:08:30.129 INFO  - Starting multi-container app, configuration = 


前端 Dockerfile

FROM node

MAINTAINER Phil

WORKDIR /src

COPY . .

RUN npm install

RUN npm install -g @angular/cli

EXPOSE 4200

CMD ng serve --host 0.0.0.0 --port 4200

后端 Dockerfile

FROM node:10.16.3

MAINTAINER Phil

WORKDIR /src

COPY . /src

RUN npm install

RUN npm install -g nodemon

EXPOSE 3000

CMD ["npm", "run", "start"]

码头工人-compose.yml


version: '3'
services:
    backend:
        build: ./backend
        ports:
            - "3000:3000"
    frontend:
        build: ./frontend
        ports:
            - "4200:80"

标签: node.jsazuredockerdocker-composeazure-web-app-service

解决方案


对于此问题,问题在于buildAzure 应用服务中不支持的 docker-compose 的属性。您可以在Docker Compose 选项中获得有关支持选项的更多详细信息。

因此,您的解决方案是自己在本地创建映像,然后将它们推送到 docker 注册表,例如 Azure 容器注册表。最后,您需要将 into 更改buildimage. 然后将其部署到 Azure App Service 就可以正常工作了。


推荐阅读