![](/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.