Dockerfile: ошибка развертывания функции Azure. URI канала gRPC «http://:» не удалось проанализировать.C#

Место общения программистов C#
Anonymous
Dockerfile: ошибка развертывания функции Azure. URI канала gRPC «http://:» не удалось проанализировать.

Сообщение Anonymous »

Я пытаюсь создать образ Docker для функции Azure и запустить его в контейнере на рабочем столе Docker (и в AKS позже).
Я не могу изменить тип проекта, это должна быть функция Azure, работающая в . net 8.
Структура решения:
  • Файл решения
  • Dockerfile.MyApi
  • MyNamespace.MyApi (функция Azure)

    MyApi.csproj => загружает общую библиотеку< /li>
[*]MyNamespace.Common (библиотека)
  • Common.csproj< /li>

Я могу собрать образ, но когда я пытаюсь запустить его в контейнере , я получаю следующую ошибку:
Необработанное исключение. System.InvalidOperationException: URI канала gRPC «http://:» не удалось проанализировать.
Мой файл dockerfile выглядит следующим образом:

Код: Выделить всё

FROM mcr.microsoft.com/dotnet/sdk:8.0-preview AS installer-env
WORKDIR /source

# copy csproj files and restore as distinct layers
COPY "MyNamespace.MyApi/*.csproj" "MyNamespace.MyApi/"
COPY "MyNamespace.Common/*.csproj" "MyNamespace.Common/"
RUN dotnet restore "MyNamespace.MyApi/MyNamespace.MyApi.csproj"

# copy and build app and libraries
COPY "MyNamespace.MyApi/" "MyNamespace.MyApi/"
COPY "MyNamespace.Common/" "MyNamespace.Common/"
WORKDIR "/source/MyNamespace.MyApi"
RUN dotnet publish -o /app

# Print the content of the /home/site/wwwroot directory
RUN ls -l /app

# final stage/image
FROM mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0
ENV AzureWebJobsScriptRoot=/app \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY --from=installer-env ["/app", "/app"]

# Set the entry point for the Azure Functions host
ENTRYPOINT ["./app/MyNamespace.MyApi"] # the container runs without this Entrypoint command, but the function is not found

Без ENTRYPOINT в файле Dockerfile я могу запустить контейнер, но, похоже, он не находит функцию Azure (следовательно, работает неправильно).
Мой файл program.cs функции Azure "MyApi" выглядит следующим образом:

Код: Выделить всё

var host = new HostBuilder()
.ConfigureFunctionsWebApplication() // error happens on this line
...
.Build();

host.Run();

Docker Desktop:
Изображение

Мои команды Docker в PowerShell:
Сборка:

Код: Выделить всё

docker build -t myUrl.io/crm/crm-myapi-image -f Dockerfile.MyApi .
Выполнить:

Код: Выделить всё

docker run -d -p 8080:80 --name crm-myapi-container myUrl.io/crm/crm-myapi-image
Знаете ли вы, как устранить эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/787 ... uld-not-be

Вернуться в «C#»