Docker Windows Containers CMD - Команда не выполняется

У меня есть образ докера, который заканчивается следующим CMD:

CMD ["powershell", "c:\install\settings\install.ps1"]

или же

CMD powershell c:\install\settings\install.ps1

Не выполнено (или, возможно, том еще не подключен).

Настройки помещаются в смонтированный том, и он начинается с:

docker run -d -p 80:80 --name openid --rm -v D:\settings\:c:\install\settings mydocker

Если я запускаю команду после запуска образа докера:

docker exec openid powershell c:\install\settings\install.ps1

Работает нормально.

Есть ли способ сделать это?

Или есть лучший способ развертывания веб-сайта IIS с помощью веб-развертывания и пользовательских SetParameters.xml?

3 ответа

Пытаться

# set up the shell
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
CMD ["powershell", "c:\\\install\\\settings\\\install.ps1"]

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

от: https://blog.sixeyed.com/windows-dockerfiles-and-the-backtick-backslash-backlash/

Вы можете передать PS-скрипт в команду docker следующим образом:

CMD ["powershell .\\myscript.ps1"]

Попробуйте это, может быть проблема с косой чертой.

CMD ["powershell", "c:/install/settings/install.ps1"]

Другие вопросы по тегам