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"]