Kar*_* VK 4 azure azure-storage-emulator docker azure-functions azure-function-app
我正在尝试使用 Docker 运行我的计时器触发器 azure 函数示例。它在 Visual Studio 中的调试和发布模式下都运行良好。但是当使用docker时
docker run -d -p 8080:80 testdockercors
应用程序启动并显示以下消息,但我的计时器触发器天蓝色功能未运行。
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down..
Run Code Online (Sandbox Code Playgroud)
但从 Visual Studio 运行时,计时器触发器工作正常。请找到我的 docker 文件。
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Testdockercors/Testdockercors.csproj", "Testdockercors/"]
RUN dotnet restore "Testdockercors/Testdockercors.csproj"
COPY . .
WORKDIR "/src/Testdockercors"
RUN dotnet build "Testdockercors.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Testdockercors.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/app
ENV AzureWebJobsStorage="UseDevelopmentStorage=true"
Run Code Online (Sandbox Code Playgroud)
当我将环境AzureWebJobsStorage值更改为现有的 azure 存储连接字符串时,它也可以在 docker 中运行。但我想使用 docker 的一部分存储,而不是 azure 中可用的存储。
我通过更改以下值解决了这个问题AzureWebJobsStorage,将 DevelopmentStorageProxyUri=http://host.docker.internal 附加到环境中就可以了。
ENV AzureWebJobsStorage="UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://host.docker.internal"
Run Code Online (Sandbox Code Playgroud)
您可以阅读有关@的更多信息https://www.maneu.net/blog/use-local-storage-emulator-remote-container/
这在 Linux 虚拟机中不起作用
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |