在 Docker 中运行 Azure DevOps 作业时出现“找不到具有给定版本的模块 Az.Accounts”错误

Posted

技术标签:

【中文标题】在 Docker 中运行 Azure DevOps 作业时出现“找不到具有给定版本的模块 Az.Accounts”错误【英文标题】:"Could not find the module Az.Accounts with given version" error when running Azure DevOps job in Docker 【发布时间】:2020-04-28 02:15:39 【问题描述】:

我在基于ubuntu:16.04的容器中安装PowerShell和Az模块

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb && \
    dpkg -i packages-microsoft-prod.deb && \
    apt-get update -y && \
    apt-get install powershell -y && \
    pwsh -c "Install-Module -Name Az -Force"

当我 ssh 到在我的机器上运行的 Docker 时,它工作正常, ..但在 Azure DevOps 管道中执行时失败并出现错误“找不到具有给定版本的模块 Az.Accounts”:

任何想法如何解决?

【问题讨论】:

Install-Module -Name Az.Resources -Scope CurrentUser -Force 【参考方案1】:

正在加载什么版本的 Az.Accounts?如果是 2.0.0-preview,DevOps 任务将失败。

您可以使用Get-InstalledModule Az.Accounts -AllVersions检查它

如果是这种情况,请使用:

Uninstall-Module -Name Az.Accounts -RequiredVersion 2.0.0-preview -AllowPrerelease

删除预览然后添加当前版本:

Install-Module -Name Az.Accounts -RequiredVersion 1.7.0

我不知道为什么要安装预览版,但它困扰了我一段时间...

【讨论】:

【参考方案2】:

文档Install the Azure PowerShell module 警告如下:

您不能同时为适用于 Windows 的 PowerShell 5.1 安装 AzureRM 和 Az 模块。如果需要在系统上保持 AzureRM 可用,请为 PowerShell Core 6.x 或更高版本安装 Az 模块。为此,请安装 PowerShell Core 6.x 或更高版本,然后在 PowerShell Core 终端中按照这些说明进行操作。

如果同时安装了 AzureRM 和 Az 模块,则会出现问题。

您可以尝试使用this thread 中讨论的 azure powershell v4 或 v3 任务。

您也可以尝试运行以下脚本来卸载 AzureRM。详情请查看this solution中的详细脚本

Uninstall-Module -Name AzureRM -AllVersions

【讨论】:

嗨@kagarlickij 你试过上面的回复了吗,怎么样?如果有任何问题,请告诉我。

以上是关于在 Docker 中运行 Azure DevOps 作业时出现“找不到具有给定版本的模块 Az.Accounts”错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Docker 中运行 Azure DevOps 作业时出现“找不到具有给定版本的模块 Az.Accounts”错误

Azure devops 中的 Docker 构建失败并显示消息无法加载文件或程序集“Microsoft.CodeAnalysis,

docker 执行 docker system prune 导致Azure Devops build镜像失败

Azure Devops: COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx.csproj no such

基于Docker托管Azure DevOps代理

DevOps 和 Azure 应用服务中的环境变量