Docker Рабочий стол для Windows не может запускать помеченные изображения - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь сделать несколько базовых c контейнеров в Windows. Я использую Docker на Linux в течение многих лет, но эта проблема для меня новая.

Запуск команды docker build -f windowsTest3.df -t dockertest . приводит к хорошей сборке с тегами.

...
 ---> 04064df75127
Step 13/13 : ENTRYPOINT C:/BuildTools/Common7/Tools/VsDevCmd.bat
 ---> Using cache
 ---> 9e098cff37a2
Successfully built 9e098cff37a2
Successfully tagged dockertest:latest

Однако при попытке запустить интерактивную оболочку внутри контейнера выдается ошибка. The system cannot find the path specified.

Редактировать: Не могу поверить, что я забыл перечислить команду ... Чтобы запустить контейнер в интерактивном режиме, я запускаю docker run -it dockertest, но я также пробовал docker run -it dockertest cmd и варианты что.

Запуск docker images показывает, что помеченное изображение существует, поэтому я не могу понять, что является причиной ошибки.

docker images

C:\Users\devuser.DESKTOP-UV8CO47\Desktop\tmp>docker images
REPOSITORY                  TAG                    IMAGE ID            CREATED             SIZE
dockertest                  latest                 9e098cff37a2        41 minutes ago      12.3GB

Здесь мои пути пути:

C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Docker\Docker\Resources\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Python37-32\Scripts\;C:\Program Files (x86)\Python37-32\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.2\common\bin;C:\Program Files\Amazon\AWSCLI\bin\;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files\CMake\bin;C:\Program Files\dotnet\;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\ProgramData\chocolatey\bin;C:\PRQA\PRQA-Framework-2.4.0\common\bin;C:\Users\DevUser\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.2\arm\bin;C:\Program Files\Git\bin;C:\Program Files\7-Zip;C:\Program Files\nssm-2.24\win64

Вот несколько сокращенная версия файла dockerfile

FROM mcr.microsoft.com/windows:10.0.17763.316-amd64

# Restore the default Windows shell for correct batch processing.
SHELL ["cmd", "/S", "/C"]

# Download the Build Tools bootstrapper.
ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:/tmp/vs_buildtools.exe

# Install Build Tools excluding workloads and components with known issues.
RUN C:/tmp/vs_buildtools.exe --quiet --wait --norestart --nocache \
    --installPath C:\BuildTools \
    --all \
    --remove Microsoft.VisualStudio.Component.Windows10SDK.10240 \
    --remove Microsoft.VisualStudio.Component.Windows10SDK.10586 \
    --remove Microsoft.VisualStudio.Component.Windows10SDK.14393 \
    --remove Microsoft.VisualStudio.Component.Windows81SDK \
 || IF "%ERRORLEVEL%"=="3010" EXIT 0

ENV chocolateyUseWindowsCompression=false

RUN powershell set-executionpolicy remotesigned

RUN powershell -Command Invoke-Expression ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

RUN powershell -Command Install-PackageProvider -Name chocolatey -Force

RUN powershell -command "choco install -y git"

ENTRYPOINT C:/BuildTools/Common7/Tools/VsDevCmd.bat 

1 Ответ

1 голос
/ 17 января 2020

Пожалуйста, проверьте, если VsDevCmd.bat доступно внутри контейнера при запуске, в C:/BuildTools/Common7/Tools/ path

Также согласно это Do c ссылка

В Windows пути к файлам, указанные в инструкции CMD, должны использовать прямую или обратную косую черту \.

CMD c: \ Apache24 \ bin \ httpd.exe -w

Возможно, попробуйте ваш ENTRYPOINT следующим образом.

ENTRYPOINT C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat 

Вы можете также используйте CMD

CMD C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat

Можно также попробовать это, но рекомендуется больше одного

ENTRYPOINT C:\BuildTools\Common7\Tools\VsDevCmd.bat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...