Попытка создать контейнер Jenkins docker с использованием шоколада в контейнере windows - PullRequest
0 голосов
/ 20 апреля 2020

Я посмотрел на несколько вопросов, но не смог найти ничего, что соответствовало бы моей проблеме. Если это дубликат, я прошу прощения!

В настоящее время я пытаюсь создать контейнер Jenkins docker, используя chocolatey внутри сценария dockerfile. Мой текущий сценарий выглядит следующим образом:

# escape=`

# Microsoft ISO required for building Empower
FROM mcr.microsoft.com/windows/servercore:ltsc2019

SHELL ["cmd", "/S", "/C"]

# Install Chocolatey on the docker container
RUN powershell -Command `
    "Set-ExecutionPolicy Bypass -Scope Process -Force; `
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; `
    iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"

# Install Jenkins
RUN powershell -Command `
    "choco install -y jenkins"

Это прекрасно сработало, и я получил следующее изображение, которое я пытался добавить команду запуска к

CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                      PORTS               NAMES
1b18ae2b6432        724f89147e6f        "-p 8080:8080"             3 minutes ago       Created                                         docker_jenkins

К сожалению, эти ошибки при следующем запуске контейнера

Error response from daemon: container 1b18ae2b64329c57953b81c1fba2c3f95836f3ae0a77affe0b00bbcd18ef1125 encountered an error during hcsshim::System::CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2)
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail: onecore\vm\compute\management\orchestration\vmhostedcontainer\processmanagement.cpp(173)\vmcomputeagent.exe!00007FF73DE39D2B: (caller: 00007FF73DDEE13A) Exception(2) tid(39c) 80070002 The system cannot find the file specified.
    CallContext:[\Bridge_ProcessMessage\VmHostedContainer_ExecuteProcess]
 Provider: 00000000-0000-0000-0000-000000000000] extra info: {"CommandLine":"-p 8080:8080","WorkingDirectory":"C:\\","CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}
Error: failed to start containers: docker_jenkins

я не могу точно сказать, что происходит не так. Любая информация по этому вопросу будет принята с благодарностью. Я совершенно новичок в docker и контейнерах, поэтому прошу прощения, если это глупый вопрос!

1 Ответ

0 голосов
/ 06 мая 2020

Мне удалось решить эту проблему. Следующий dockerfile - это то, что я закончил

# escape=`

# Microsoft ISO required for building Empower
FROM mcr.microsoft.com/windows/servercore:ltsc2019

# Update shell to powershell
SHELL ["powershell", "-command"]

# Install Chocolatey on the docker container
RUN Set-ExecutionPolicy Bypass -Scope Process -Force; `
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; `
    iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

# Install Jenkins
RUN choco install -y jenkins
...