Я обязательно включил абсолютный путь к исполняемому файлу, когда контейнер запущен, не повезло, я также пытался установить каталог во время выполнения, выполнив 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();
Код: Выделить всё
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