繁体   English   中英

在docker文件基本中使用环境变量

[英]using environment variables in a docker file basic

使用以下泊坞窗文件,我在RUN md $ SiteFolderPath上遇到错误,并且我不确定为什么我看的每个示例:

https://docs.docker.com/engine/reference/builder/#environment-replacement

表示我做得正确。

FROM microsoft/iis
#FROM nanoserver/iis

SHELL ["powershell"]

ENV SiteFolderPath c:\\app
ENV SiteFolderPathLogs c:\\app\\logs
ENV WorkFolder /app

ENV SiteAppPool LocalAppPool
ENV SiteName LocalWebSite
ENV SiteHostName LocalSite

RUN md $SiteFolderPath
RUN md $SiteFolderPathLogs
WORKDIR $WorkFolder


COPY ./Public .

RUN New-Item $SiteFolderPath -type Directory
RUN Set-Content $SiteFolderPath\Default.htm "<h1>Hello IIS</h1>"
RUN New-Item IIS:\AppPools\$SiteAppPool
RUN New-Item IIS:\Sites\$SiteName -physicalPath $SiteFolderPath -bindings @{protocol="http";bindingInformation=":80:"+$SiteHostName}
RUN Set-ItemProperty IIS:\Sites\$SiteName -name applicationPool -value $SiteAppPool

EXPOSE 80
EXPOSE 443

VOLUME ${SiteFolderPathLogs}

构建docker文件时出现错误消息:

mkdir:无法将参数绑定到参数'Path',因为它为null。

您链接到的页面指出:

Environment variables are supported by the following list of instructions in the Dockerfile:

ADD
COPY
ENV
EXPOSE
FROM
LABEL
STOPSIGNAL
USER
VOLUME
WORKDIR

as well as:

ONBUILD (when combined with one of the supported instructions above)

由于将变量用作RUN块的一部分,因此应使用Windows环境变量语法:%SiteFolderPath%

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM