Windows 2016 服务器的 CIS AMI 上的 Docker 企业安装

Windows 2016 服务器的 CIS AMI 上的 Docker 企业安装

我正在尝试使用 ansible 在 Windows 2016 服务器的 CIS AMI 上安装 Docker 企业版。我使用 PowerShell 模块进行此安装。docker 安装任务的代码如下。

- name: Install Docker for windows.
  win_shell: >
    [Net.ServicePointManager]::SecurityProtocol = "tls12";
    Install-Module -Name DockerMsftProvider -confirm:$false -Force;
    Install-Package Docker -ProviderName DockerMsftProvider -confirm:$false –Force
  when: ecs_docker == True

这是在 CI-CD 内部,代码在 circleci docker 镜像上执行。上述任务失败并显示以下消息。

Install-Module : NuGet provider is required to interact with NuGet-based repositories.

为了安装 Nuget 包管理器,我已包含以下任务。

- name: Install Nuget repository.
  win_chocolatey:
    name: nugetpackagemanager
    state: present

消息仍然相同。 上述任务完成了 Nuget 包管理器的安装。 还有另一条消息,如下所示。

Windows PowerShell is in NonInteractive mode. Read and \r\nPrompt functionality is not available

-force还添加了参数以强制安装 docker,但构建失败。我正在构建基于 Windows 的 docker 映像,并将托管在此 2016 服务器上。

答案1

我使用另一个 PowerShell 命令更新了我的 ansible 任务以进行 docker 安装。以下是更新的任务定义。我刚刚添加了 Nuget 包提供程序。

- name: Install Docker for windows.
  win_shell: >
    [Net.ServicePointManager]::SecurityProtocol = "tls12";
    Install-PackageProvider NuGet -Force;
    Install-Module -Name DockerMsftProvider -confirm:$false -Force;
    Install-Package Docker -ProviderName DockerMsftProvider -confirm:$false –Force
  when: ecs_docker == True

相关内容