Windows Docker добавляет настраиваемые заголовки

Я пытаюсь добавить X-Forwarded-For заголовок запроса к mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 Базовый образ Docker с использованием Add-WebConfigurationProperty.

Мой Dockerfile выглядит так:

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
ARG source
RUN Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']/logFile/customFields" -name "." -value "@{logFieldName='X-Forwarded-For';sourceName='X-FORWARDED-FOR';sourceType='RequestHeader'}"

WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .

Когда я запускаю сборку докеров, я получаю следующую ошибку

Sending build context to Docker daemon  4.096kB
Step 1/5 : FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
 ---> 30379ad7580b
Step 2/5 : ARG source
 ---> Using cache
 ---> 90c760c37d26
Step 3/5 : RUN Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']/logFile/customFields" -name "." -value @{logFieldName='X-Forwarded-For';sourceName='X-FORWARDED-FOR';sourceType='RequestHeader'}
 ---> Running in 4210cd6ae606
Add-WebConfigurationProperty : Expected an operator name (eg. 'and')
Input: get-config("MACHINE/WEBROOT/APPHOST")/system.applicationHost/sites/site[
@name=Default Web Site]/logFile/customFields
Position: 86
Length: 3
Fragment: Web
At line:1 char:76
+ ... yContinue'; Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APP ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-WebConfigurationProperty]
   , ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.IIs.PowerShel
   l.Provider.AddConfigurationPropertyCommand

The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']/logFile/customFields" -name "." -value @{logFieldName='X-Forwarded-For';sourceName='X-FORWARDED-FOR';sourceType='RequestHeader'}' returned a non-zero code: 1

Dockerfile отлично работает без RUN Add-WebConfigurationProperty. Если я построю его безRUN Add-WebConfigurationProperty Я могу запустить контейнер и выполнить Add-WebConfigurationPropertyи убедитесь, что поле добавлено в файл журнала. Есть идеи, почему это не будет работать через Dockerfile.

1 ответ

Я также сталкивался с некоторыми проблемами выхода из Windows Dockerfiles, иногда я использую сценарий PowerShell для вещей, которые мне нужны.

В этом случае, поскольку я предполагаю, что вы просто хотите добавить поле, вы можете использовать:

-filter "system.applicationHost/sites/siteDefaults/logFile/customFields"

Надеюсь это поможет!

Спасибо!

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