![](/img/trans.png)
[英]How to deploy multiple MEAN app containers to Azure using Docker-Compose
[英]Using docker-compose in azure app service
我让我的平均堆栈代码在 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"]
docker-compose.yml
version: '3'
services:
backend:
build: ./backend
ports:
- "3000:3000"
frontend:
build: ./frontend
ports:
- "4200:80"
对于此问题,问题在于 Azure 应用服务中不支持的 docker-compose 的属性build
。 您可以在Docker Compose options 中获取有关支持选项的更多详细信息。
因此,您的解决方案是自己在本地创建映像,然后将它们推送到 docker 注册表,例如 Azure 容器注册表。 最后,您需要将build
更改为image
。 然后将其部署到 Azure 应用服务,它会正常工作。
另一种方法是使用更新的(2020 年 10 月) compose-cli
,它既可以在本地运行,也可以在Microsoft ACI(Azure 容器实例)的上下文中运行。
示例: Guillaume Tardif (Docker 高级软件工程师)的“ 将 Minecraft Docker 服务器部署到云端”
在本地启动它的命令现在要简单得多:
$ docker-compose --project-name mc up
并且要部署到 ACI,仍然使用我之前创建的 ACI 上下文:
$ docker compose --project-name mc2 up
另请参阅Peter McKee ( Coding Adventures.io ) 的“ 如何使用 Docker CLI 和 Compose 将容器部署到 Azure ACI ”。
您可以轻松创建符合 ACI 的上下文:
docker context create aci myaci
docker-compose push
docker context use myaci
docker compose up
另外,“ VSCode Docker 扩展现在可以在 Azure 容器实例中运行容器”,来自Mike Morton (高级项目经理 - Microsoft - Visual Studio)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.