Docker: фреймворки и среды выполнения не найдены (.NET 8).C#

Место общения программистов C#
Ответить
Anonymous
 Docker: фреймворки и среды выполнения не найдены (.NET 8).

Сообщение Anonymous »

Я создаю фоновую службу (.NET 8), которая подключается к серверу RabbitMQ и базе данных Sql. И сервер RabbitMQ, и база данных Sql размещаются в докере.
Когда я запускаю приложение в режиме отладки в Visual Studio 2022, приложение работает отлично.
Когда я публикую приложение и регистрирую его как службу на своем компьютер, на котором установлена ​​Windows 11, также работает отлично.
Я написал Dockerfile, который будет контейнеризировать приложение. После сборки образа и контейнера контейнер не запускается.
Подробнее.
Структура папок решения:
Структура папок решения
Файл проекта:

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



net8.0
enable
enable
dotnet-LogRecord_Service-2087123f-9942-4cc7-aa76-8c572656e691
Linux


















Файл Docker:

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

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["LogRecord_Service/LogRecord_Service.csproj", "LogRecord_Service/"]
COPY ["Database_Logic_Layer/Database_Logic_Layer.csproj", "Database_Logic_Layer/"]
COPY ["DataAccess/DataAccess.csproj", "DataAccess/"]
COPY ["Helpers/Helpers.csproj", "Helpers/"]
COPY ["Geotab_Logic_Layer/Geotab_Logic_Layer.csproj", "Geotab_Logic_Layer/"]
COPY ["QueueManagement/QueueManagement.csproj", "QueueManagement/"]
RUN dotnet restore "./LogRecord_Service/LogRecord_Service.csproj"
COPY .  .
WORKDIR "/src/LogRecord_Service"
RUN dotnet build "./LogRecord_Service.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./LogRecord_Service.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

FROM mcr.microsoft.com/dotnet/runtime:8.0 AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "LogRecord_Service.dll"]
Журналы построения изображений:

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

docker build -t log_record_producer_image .
[+] Building 1.2s (22/22) FINISHED                                                                                                                                                     docker:default
=> [internal] load build definition from Dockerfile                                                                                                                                             0.0s
=> => transferring dockerfile: 1.31kB                                                                                                                                                           0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/runtime:8.0                                                                                                                            0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/sdk:8.0                                                                                                                                0.4s
=> [internal] load .dockerignore                                                                                                                                                                0.0s
=> => transferring context: 464B                                                                                                                                                                0.0s
=> [build  1/12] FROM mcr.microsoft.com/dotnet/sdk:8.0@sha256:9bb0d97c4361cc844f225c144ac2adb2b65fabfef21f95caedcf215d844238fe                                                                  0.0s
=> CACHED [final 1/3] FROM mcr.microsoft.com/dotnet/runtime:8.0                                                                                                                                 0.0s
=> [internal] load build context                                                                                                                                                                0.1s
=> => transferring context: 6.22kB                                                                                                                                                              0.0s
=> [final 2/3] WORKDIR /app                                                                                                                                                                     0.1s
=> CACHED [build  2/12] WORKDIR /src                                                                                                                                                            0.0s
=> CACHED [build  3/12] COPY [LogRecord_Service/LogRecord_Service.csproj, LogRecord_Service/]                                                                                                   0.0s
=> CACHED [build  4/12] COPY [Database_Logic_Layer/Database_Logic_Layer.csproj, Database_Logic_Layer/]                                                                                          0.0s
=> CACHED [build  5/12] COPY [DataAccess/DataAccess.csproj, DataAccess/]                                                                                                                        0.0s
=> CACHED [build  6/12] COPY [Helpers/Helpers.csproj, Helpers/]                                                                                                                                 0.0s
=> CACHED [build  7/12] COPY [Geotab_Logic_Layer/Geotab_Logic_Layer.csproj, Geotab_Logic_Layer/]                                                                                                0.0s
=> CACHED [build  8/12] COPY [QueueManagement/QueueManagement.csproj, QueueManagement/]                                                                                                         0.0s
=> CACHED [build  9/12] RUN dotnet restore "./LogRecord_Service/LogRecord_Service.csproj"                                                                                                       0.0s
=> CACHED [build 10/12] COPY . .                                                                                                                                                                 0.0s
=> CACHED [build 11/12] WORKDIR /src/LogRecord_Service                                                                                                                                          0.0s
=> CACHED [build 12/12] RUN dotnet build "./LogRecord_Service.csproj" -c Release -o /app/build                                                                                                  0.0s
=> CACHED [publish 1/1] RUN dotnet publish "./LogRecord_Service.csproj" -c Release -o /app/publish /p:UseAppHost=false                                                                          0.0s
=> [final 3/3] COPY --from=publish /app/publish .                                                                                                                                               0.5s
=> exporting to image                                                                                                                                                                           0.1s
=> => exporting layers                                                                                                                                                                          0.1s
=> => writing image sha256:bc73c757dec2ead70c8db7df5a2e08fe9665e8b0396ab2a141bf590fd449af82                                                                                                     0.0s
=> => naming to docker.io/library/log_record_producer_image                                                                                                                                     0.0s

View build details: docker-desktop://dashboard/build/default/default/r14olesvrbxevmit01mirf4ev

What's Next?
View a summary of image vulnerabilities and recommendations → docker scout quickview
Журналы контейнера после создания и попытки запуска контейнера:
введите здесь описание изображения
Я не уверен, в чем проблема.
Я использовал аналогичный файл для создания и запуска контейнера для консольного приложения (также .Net 8), и он работал отлично.
Пожалуйста, помогите разобраться.< /p>

[*]Я спросил ChatGPT об этой проблеме, и он продолжал повторять одну и ту же информацию. Он говорит, что мой файл Dockerfile неверен, и мне следует его изменить. Предложенный файл Dockerfile был идентичен тому, который у меня есть.
[*]Я также проверил на Github наличие подобных проблем, и предложенные решения не решают мою текущую проблему.


Подробнее здесь: https://stackoverflow.com/questions/782 ... ound-net-8
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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