所以我不确定如何解释这一点。我正在将 Azure Functions 作为 Docker 映像 (c#) 运行,我有一些文件在 Visual Studio 中运行 Azure 函数时会被复制到 bin 目录中,并且编译后的代码可以很好地提取它们。(非码头工人)
当我创建 Docker 映像并启动它时,文件又是我认为它们应该在的位置(我进入了 Docker 快照 /home/site/wwwroot/bin/)
但是,Azure 函数根目录是 Content root path: / (Environment.CurrentDirectory) 我不知道它在哪里。
我做了一个函数来列出 / 中的所有文件,它是一个 .dockerenv 文件。
我在 Azure 函数中将路径硬编码到我想要的文件 /home/site/wwwroot/ 等以及我正在使用的库 sh*ts abrick
DockerFile
FROM microsoft/dotnet:2.2-sdk AS installer-env
COPY . /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
mkdir -p /home/site/wwwroot && \
dotnet publish *.csproj --output /home/site/wwwroot
# To enable ssh & remote debugging on app service change the base image to the one below
# FROM mcr.microsoft.com/azure-functions/dotnet:2.0-appservice
FROM mcr.microsoft.com/azure-functions/dotnet:2.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]
ADD aiml /home/site/wwwroot/bin/aiml
ADD config /home/site/wwwroot/bin/config
默认情况下,容器的根目录在哪里? .dockerenv 文件在哪里?