在 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