1

我有一个简单的应用程序构建为 docker 映像(ubuntu)并将其放入 docker 容器中。它附有几卷。我想将此容器推送到 Azure AppService Linux。我尝试了几个选项,但没有成功。

  1. Azure CLI 创建 Web 应用并将容器推送到 Azure 容器注册表,然后将其部署到 Web 应用。

    给出invalid reference format错误。

  2. 已将容器上传到acr并更新了 Web 应用程序容器设置以将此容器加载到 Web 应用程序中。

    给出image not foundinvalid reference format错误。

不知道如何进行。非常感谢任何帮助。我还想知道如何在这里为卷使用持久存储。Azurefileshare是更好的选择,但不确定如何将其映射到容器路径。

下面是我的示例docker-compose文件。

version: "3.3"
services:
  test-backend:
    image: test-002
    container_name: test-002
    restart: always
    volumes:
     - ./assets:/opt/test_files
     - ./medialibrary:/opt/test_medialibrary
     - ./app-configs:/opt/test_configs
     - ./logs/backend:/opt/test-backend-logs
    extra_hosts:
     test-converter: "127.0.0.1"
    ports:
     - "8000:8000"
volumes:
  test-data:
  test-data2:
4

3 回答 3

2

图像引用必须采用以下格式: image: server-name .azurecr.io/ image-name : tag

除此之外,我推荐这个常见问题解答,它对我的​​应用程序启动和运行有很大帮助: https ://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-faq#定制容器

于 2019-11-21T12:19:37.523 回答
1

使用您上面描述的目标,首先您应该在本地运行映像以检查它是否运行良好。您应该检查撰写文件中相关的图像是否存在于您的本地计算机中。

如果要将映像推送到 Azure 容器注册表并从映像部署 Web 应用。您可以从Use a custom Docker image for Web App for Containers中获取有关步骤的更多详细信息。

在我看来,我建议如果你只部署一项服务,你可以使用 Dockerfile 而不是 docker compose 文件。无论是 docker 镜像还是 Azure Web App 服务,部署起来都更加简单。并且 docker compose 对多服务更有帮助。

于 2018-10-04T12:57:00.873 回答
0

以下是如何将 Azure 存储挂载到多容器 WebApp(使用 docker-compose.yml):

#Sample Docker Compose:
version: '3.3'
 
services:
   web:
     image: appsvc/python
     ports:
       - "8000:8000"
     volumes:
       - test:/home/site/wwwroot/test
 
volume:
     - test

路径映射

在此处输入图像描述

(“test”是我们在 docker-compose.yml 中使用的自定义 ID)

文件存储

在此处输入图像描述

我们现在可以从 webapp 容器中看到存储中存在的目录:

在此处输入图像描述

https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/app-service/containers/how-to-serve-content-from-azure-storage.md

于 2019-11-28T20:59:30.170 回答