Windows Docker добавление пользовательских заголовков - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь добавить заголовок запроса 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} .

Когда Я запускаю docker build Я получаю следующую ошибку

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 Ответ

0 голосов
/ 28 января 2020

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

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

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

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

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...