Я пытаюсь «поднять и сдвинуть» устаревший веб-сервис (и веб-сайт, который использовался для его администрирования), который был написан с использованием MVC 3. Я использовал функцию Visual Studio «add -> docker support» и получаюмой веб-сайт в контейнере, и веб-сайт будет работать правильно, если я вручную подключусь к работающему контейнеру и установлю MVC 3. Я бы предпочел, чтобы при сборке контейнера был установлен MVC 3.
Файл Docker выглядит следующим образом:
# escape=` (backtick)
FROM microsoft/aspnet:4.7.1-windowsservercore-1709
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
RUN C:\inetpub\wwwroot\AspNetMVC3Setup.exe /q
Последняя строка файла Docker - это то, что не работает.Я пробовал несколько вариантов, но в результате всегда возникает ошибка типа «не найден».
Примеры других попыток синтаксиса:
RUN ["C:\inetpub\wwwroot\AspNetMVC3Setup.exe", "/q"]
RUN ["powershell.exe", "C:\inetpub\wwwroot\AspNetMVC3Setup.exe", "/q"]
RUN ["powershell.exe", ".\AspNetMVC3Setup.exe", "/q"]
RUN [".\AspNetMVC3Setup.exe", "/q"]
RUN AspNetMVC3Setup.exe /q
Пути и имена файлов верны, когда я подключаюсь кработающий контейнер, но возможно ли, чтобы во время сборки файлы еще не были в наличии?
Как запустить установку MVC как часть сборки контейнера?
Примеры ошибок:
13>Step 5/5 : RUN C:\inetpub\wwwroot\AspNetMVC3Setup.exe /q
13> ---> Running in 3b7e8c30f2e0
13>[91mC:\inetpub\wwwroot\AspNetMVC3Setup.exe : The term
13>[0m[91m'C:\inetpub\wwwroot\AspNetMVC3Setup.exe' is not recognized as the name of a
13>cmdlet, function, script file, or operable program. Check the spelling of the
13>[0m[91mname, or if a path was included, verify that the path is correct and try again.
13>[0m[91mAt line:1 char:76
13>[0m[91m+ ... rence = 'SilentlyContinue'; C:\inetpub\wwwroot\AspNetMVC3Setup.exe /q
13>[0m[91m+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13> + CategoryInfo : ObjectNotFound: (C:\inetpub\wwwroot\AspNetMVC3Se
13> tup.exe:String) [], ParentContainsErrorRecordException
13> + FullyQualifiedErrorId : CommandNotFoundException
13>Step 5/5 : RUN ["C:\inetpub\wwwroot\AspNetMVC3Setup.exe", "/q"]
13> ---> Running in 7322410daf93
13>[91mAt line:1 char:77
13>[0m[91m+ ... ference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; [C:\inetp ...
13>+ ~
13>[0m[91mMissing ] at end of attribute or type literal.
13>[0m[91mAt line:1 char:78
13>+ ... ce = 'SilentlyContinue'; [C:\inetpub\wwwroot\AspNetMVC3Setup.exe, /q]
13>[0m[91m+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13>Unexpected token ':\inetpub\wwwroot\AspNetMVC3Setup.exe' in expression or
13>[0m[91mstatement.
13>At line:1 char:115
13>+ ... ce = 'SilentlyContinue'; [C:\inetpub\wwwroot\AspNetMVC3Setup.exe, /q]
13>+ ~
13>Missing argument in parameter list.
13> + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordEx
13> ception
13>[0m[91m + FullyQualifiedErrorId : EndSquareBracketExpectedAtEndOfAttribute
13>
13>Service 'adminmanagement' failed to build: The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; ["C:\inetpub\wwwroot\AspNetMVC3Setup.exe", "/q"]' returned a non-zero code: 1
13>[0m
13>Step 5/5 : RUN ["powershell.exe", "C:\inetpub\wwwroot\AspNetMVC3Setup.exe", "/q"]
13> ---> Running in 44113a1005d2
13>[91mUnable to find type [powershell.exe,C:\inetpub\wwwroot\AspNetMVC3Setup.exe,
13>/q]. Details: The given assembly name or codebase was invalid. (Exception from
13>HRESULT: 0x80131047)
13>At line:1 char:76
13>[0m[91m+ ... yContinue'; [powershell.exe, C:\inetpub\wwwroot\AspNetMVC3Setup.exe, ...
13>[0m[91m+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13> + CategoryInfo : InvalidOperation: (powershell.exe,...C3Setup.exe
13> , /q:TypeName) [], ParentContainsErrorRecordException
13>[0m[91m + FullyQualifiedErrorId : TypeNotFoundWithMessage
13>[0m[91m
13>Service 'adminmanagement' failed to build: The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; ["powershell.exe", "C:\inetpub\wwwroot\AspNetMVC3Setup.exe", "/q"]' returned a non-zero code: 1
13>[0m