Назад | Перейти на главную страницу

Установка Docker Enterprise на CIS AMI сервера windows 2016

Я пытаюсь установить корпоративную версию Docker на CIS AMI сервера Windows 2016 с помощью ansible. Я использую модуль PowerShell для этой установки. Код для задачи установки докера приведен ниже.

- 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. Вышеуказанная задача не дает сообщения ниже.

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 параметр, а также для принудительной установки докера, однако он не выполняет сборку. Я создаю образы докеров для Windows, которые собираюсь разместить на этом сервере 2016 года.

Я обновил свою задачу ansible с помощью другой команды PowerShell для установки докера. Ниже приведено обновленное определение задачи. Я только что добавил поставщика пакетов 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