Я новичок в докере и использую это как пример того, как учиться. Я пытаюсь создать файл докеров, который позволил бы мне запускать plex на моем сервере Windows. Замечательный пост, созданный на форумах Plex, описывает, как выполнять задачи с помощью PowerShell, и поэтому я хотел посмотреть, можно ли создать изображение с помощью этих команд.
Вот что у меня есть на данный момент:
FROM microsoft/windowsservercore
RUN Get-ChildItem "$Env:SystemRoot\Servicing\Packages\*Media*.mum" | ForEach-Object { (Get-Content $_) -replace 'required','no' | Set-Content $_}
RUN Add-WindowsFeature Server-Media-Foundation;
RUN Invoke-WebRequest -OutFile Plex-Media-Server-1.12.3.4973-215c28d86.exe "https://downloads.plex.tv/plex-media-server/1.12.3.4973-215c28d86/Plex-Media-Server-1.12.3.4973-215c28d86.exe" -UseBasicParsing;
RUN .\plex.exe /quiet
RUN start 'C:\Program Files (x86)\Plex\Plex Media Server\Plex Media Server.exe'
EXPOSE 32400/tcp
Я удалил комментарии для форматирования. Итак, у меня есть два вопроса,
во-первых: похоже, это не работает при использовании docker build -t test_plex. Я получаю следующую ошибку:
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Windows\System32\Dockerfile: The system cannot find the file specified.
во-вторых: при использовании PowerShell все это будет работать параллельно? или есть какая-то команда ожидания.
Любая помощь / советы были бы замечательными, спасибо за ваше время (извините за длинный пост)


Похоже, вы используете docker build -t test_plex . в C:\Windows\System32\. Перейдите в пустую папку с вашим Dockerfile и снова запустите команду.
. - это местоположение вашего контекста сборки, вы также можете изменить это местоположение на другой путь.
Имейте в виду, что когда вы запускаете docker build -t test_plex ., "контекст сборки" или каталог, в котором вы находитесь при запуске, имеет отношение к сборке. В зависимости от вашей системы все файлы в том месте, где вы запускаете эту команду, будут скопированы в сборку vm.