«Нет такого файла или каталога» при попытке запустить процесс в контейнере докеров во время выполнения приложения.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 «Нет такого файла или каталога» при попытке запустить процесс в контейнере докеров во время выполнения приложения.

Сообщение Anonymous »

Я не могу сослаться на исполняемый файл (.exe) из другого .csproj при запуске приложения asp.net в контейнере докеров при попытке запустить System.Diagnostics.Process, хотя .exe в каталоге контейнера, но я все еще получаю эту ошибку: «Произошла ошибка при попытке запустить процесс «/ct.mediator.app/CTBot.exe» с рабочим каталогом «/ct.mediator.app». Нет такого файла или каталога».
Я обязательно включил абсолютный путь к исполняемому файлу, когда контейнер запущен, не повезло, я также пытался установить каталог во время выполнения, выполнив Directory .SetCurrentDirectory("/ct.mediator.app"); и установить рабочий каталог в StartInfo, но тоже не повезло, я пытался получить ожидаемое поведение при получении приложение (CTMediator.dll) нашло указанный исполняемый файл (CTBot.exe) во время выполнения, чтобы запустить процесс, но безуспешно.
Не установлены разрешения на доступ или изменение файлов в контейнере.
Program.cs

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

var process = new Process()
{
StartInfo = new("/ct.mediator.app/CTBot.exe", "argument1", "argument2")
{
WindowStyle = ProcessWindowStyle.Hidden,
RedirectStandardOutput = true
}
};

process.Start();
Dockerfile

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

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /ct.mediator.app
EXPOSE 5212
EXPOSE 7195

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /ct.mediator.src
COPY ["Mediator/CTMediator.csproj", "Mediator/"]
COPY ["Shared/CTShared.csproj", "Shared/"]
COPY ["Bot/CTBot.csproj", "Bot/"]
RUN dotnet restore "./Mediator/./CTMediator.csproj"
COPY . .
WORKDIR "/ct.mediator.src/Mediator"
RUN dotnet build "./CTMediator.csproj" -c $BUILD_CONFIGURATION -o /ct.mediator.app/build

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

FROM base AS final
WORKDIR /ct.mediator.app
COPY --from=publish /ct.mediator.app/publish .
COPY --from=build /ct.mediator.src/Bot/bin/Release/net8.0/CTBot.exe /ct.mediator.app/CTBot.exe
ENTRYPOINT ["dotnet", "CTMediator.dll"]
Папка во время выполнения

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

-ct.mediator.app
- CTMediator.dll
- CTBot.dll
- CTBot.exe
Было бы здорово, если бы кто-нибудь мог указать мне правильное направление, почему я не могу ссылаться на файл во время выполнения. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/785 ... -container
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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