1

所以我不确定如何解释这一点。我正在将 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

我按照本教程 https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image?tabs=bash%2Cportal&pivots=programming-language-csharp

默认情况下,容器的根目录在哪里? .dockerenv 文件在哪里?

4

0 回答 0