используйте grpc в dotnet / core / runtime-deps: 2.2-alpine3.9 получил символ не найдена ошибка - PullRequest
1 голос
/ 21 мая 2019

Я использовал grpc в своей программе .netcore и хочу создать образ докера, чтобы использовать его.

Вот как я собираю свою программу в Dockerfile

RUN  dotnet publish -r linux-musl-x64 --no-restore -c Release -o /out

И якопировать в другие изображения, такие как

RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY --from=build /out ./
ENTRYPOINT ["./MyService"]

. Вопрос касается образа во время выполнения.Если я использую "microsoft / dotnet: 2.2-runtime-deps-alpine", проблем не возникает, НО если используется "mcr.microsoft.com/dotnet/core/runtime-deps:2.2-alpine3.9"

Я получил сообщение об ошибке.

Unhandled Exception: System.IO.IOException: Error loading native library "/app/libgrpc_csharp_ext.x64.so". Symbol not found: PAL_dlerror
at Grpc.Core.Internal.UnmanagedLibrary..ctor(String[] libraryPathAlternatives)
at Grpc.Core.Internal.NativeExtension.LoadUnmanagedLibrary()
at Grpc.Core.Internal.NativeExtension.LoadNativeMethods()
at Grpc.Core.Internal.NativeExtension..ctor()
at Grpc.Core.Internal.NativeExtension.Get()
at Grpc.Core.GrpcEnvironment.GrpcNativeInit()
at Grpc.Core.GrpcEnvironment..ctor()
at Grpc.Core.GrpcEnvironment.AddRef()
at Grpc.Core.Server..ctor(IEnumerable`1 options)
at MyService.Program.Main(String[] args) in /code/MyService/Program.cs:line 32

Как я могу это исправить?В чем разница между этими двумя изображениями?Я могу найти только второй Dockerfile на Docker Hub

...