在Dockerfile中,我试图按照if逻辑设置ARG变量RUNTIME_ENVIRONMENT
,并将其放入子脚本runtime.sh
(与Dockerfile位于同一文件夹中)。 / p>
我的脚本runtime.sh
:
#!/bin/bash
aspenv="Development"
if [ "$BUILD_SOURCEBRANCHNAME" = "SP-1043" ]
then
aspenv="Test"
fi
if [ "$BUILD_SOURCEBRANCHNAME" = "Test" ]
then
aspenv="Test"
fi
然后我尝试在Dockerfile中使用source
命令,如下所示:Using the RUN instruction in a Dockerfile with 'source' does not work
RUN /bin/bash -c "source runtime.sh"
从Dockerfile访问变量aspenv
之前,
ARG RUNTIME_ENVIRONMENT=$aspenv
ENV ASPNETCORE_ENVIRONMENT=$RUNTIME_ENVIRONMENT
最后,它不起作用。我没有任何构建错误,但是当我检查图像时,环境变量ASPNETCORE_ENVIRONMENT不存在:
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"ASPNETCORE_URLS=http://+:80",
"DOTNET_RUNNING_IN_CONTAINER=true",
"ASPNETCORE_VERSION=2.1.5"
]
(当我在Dockerfile中直接设置ASPNETCORE_ENVIRONMENT变量时,没有任何if逻辑)
我不知道问题出在采购上,还是尝试访问aspenv
变量的方式,或者其他问题。