无法在 Visual Studio 2019 中使用 Azure Function 项目构建 docker compose

2024-02-10

我尝试将 Azure Function 项目添加到在 Visual Studio 2019 (16.7.6) 中创建的 docker-compose 文件中,但这会导致解决方案无法构建。

(Docker for Windows 2.4.0.0 (48506),启用了 WSL2 支持,在 Windows 10 Pro 2004 上以 Linux 容器模式运行)

重现步骤:

  1. 使用包含 docker 的 Web Api 项目“Web”创建新的解决方案 支持。
  2. 添加带有 Http 触发器的新 Azure Function 项目“Func” 功能,然后通过 Visual Studio 添加 docker 支持 > Docker 支持选项。
  3. 向 Web 添加“容器编排支持” 项目生成包含 Web 应用程序的 docker-compose.yml 文件

此时,解决方案可以在 docker 或 docker-compose 中为 Web 或 func 应用程序构建调试工作 - 一切都很好。

当“Func”项目手动添加到 docker-compose.yml 时,解决方案不再构建:

CTC1031 Linux containers are not supported for Func project
Project: docker-compose
File: Microsoft.VisualStudio.Docker.Compose.targets
Line 303

但是,我可以从命令行正常运行 docker-compose:

docker-compose -f docker-compose.yml up

Web 和 Function 应用程序启动都很好。

我的 docker-compose.yml 文件是

version: '3.4'

services:
  web:
    image: ${DOCKER_REGISTRY-}web
    build:
      context: .
      dockerfile: Web/Dockerfile

  func:
    image: ${DOCKER_REGISTRY-}func
    build:
      context: .
      dockerfile: Func/Dockerfile

在 Visual Studio 中构建解决方案时为什么会出现上述错误,有什么想法吗?


有同样的问题。 docker-compose 项目类型似乎只允许设置对特定类型项目的依赖关系,如 Sdk="Microsoft.NET.Sdk.Web",并且不允许库项目如 Sdk="Microsoft.NET.Sdk" 。从 docker-compose.yml 引用 Dockerfile 会自动设置引用。

如果项目类型错误,compose 可以工作,但 docker-compose 项目的编译会失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Visual Studio 2019 中使用 Azure Function 项目构建 docker compose 的相关文章

随机推荐