【问题标题】:Deploy a docker container on Azure App Service Linux在 Azure 应用服务 Linux 上部署 docker 容器
【发布时间】:2019-03-09 13:01:57
【问题描述】:

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

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

    给出invalid reference format 错误。

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

    给出image not foundinvalid reference format 错误。

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

下面是我的示例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:

【问题讨论】:

  • 我正在为 Web 容器的应用服务寻找解决方案。容器实例本身无法扩展,适合短期工作。
  • 你见过multi-container app吗?这只是预览版。
  • 我已经看到了,但安装卷是问题。
  • 能否设置环境变量WEBSITES_ENABLE_APP_SERVICE_STORAGE?你可以看看this

标签: docker docker-compose azure-web-app-service azure-container-registry


【解决方案1】:

图片参考必须采用以下格式: 图片:服务器名称.azurecr.io/图片名称标签

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 谢谢。但是知道如何将卷安装到 azure app service 吗?我更喜欢使用文件共享。有可能吗?
    • 不幸的是,您似乎无法将卷挂载到 azure 应用服务。据我所知,您可以在 ACI 或 AKS 中安装卷。您还可以将应用部署到他们。
    • ACI ?你是说 ACS?
    • 我的意思是 Azure 容器实例。见Azure Container Instances
    【解决方案3】:

    以下是如何将 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

    【讨论】:

    • 如果解释了/mnt,答案会更清楚。我可以关注与在容器内公开 docker 卷相关的所有其他内容。映射到指定路径(右侧)的来源不清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多