Как передать аргументы консольному приложению .NET C# при запуске в Docker Compose?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как передать аргументы консольному приложению .NET C# при запуске в Docker Compose?

Сообщение Anonymous »

Я работаю с Docker Compose над запуском консольного приложения .NET C#. Мне нужно передать аргументы командной строки приложению при его запуске, но в журналах появляется следующая ошибка:
2025-01-15 13:07:47 System.ArgumentException: Required input args was empty. (Parameter 'args')
2025-01-15 13:07:47 at Ardalis.GuardClauses.GuardClauseExtensions.NullOrEmpty[T](IGuardClause guardClause, IEnumerable`1 input, String parameterName, String message, Func`1 exceptionCreator)
2025-01-15 13:07:47 at Personnel.Infrastructure.Migrator.Program.Main(String[] args) in C:\Users\user\RiderProjects\staffpro.learn.redkozubov\src\Services\Personnel\Infrastructure\Personnel.Infrastructure.Migrator\Program.cs:line 21

Вот мой Docker Compose для контейнераpersonal_migrator:
personnel_migrator:
container_name: personnel_migrator
build:
context: .
dockerfile: src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Migrator/Dockerfile
depends_on:
- personnel_db
networks:
- personnel_db
ports:
- "5001:5001"
environment:
- CONNECTION_STRING=${CONNECTION_STRING}
command: dotnet Personnel.Infrastructure.Migrator.dll --${CONNECTION_STRING}


Мой файл .env содержит:
CONNECTION_STRING="ConnectionString"

Приложение ожидает передачи аргументов, но при запуске приложения массив args оказывается пустым. Как правильно передать аргументы командной строки приложению .NET в Docker Compose?
Вот мой код Program.cs
private static readonly Migrator Migrator = new();
internal static void Main(string[] args)
{
try
{
Guard.Against.NullOrEmpty(args);
Migrator.Migrate(args);
}
catch (Exception exception)
{
Console.WriteLine(exception);
throw;
}
}

Вот файл докеров:
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
USER $APP_UID
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Migrator/Personnel.Infrastructure.Migrator.csproj", "src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Migrator/"]
COPY ["src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Data/Personnel.Infrastructure.Data.csproj", "src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Data/"]
COPY ["src/Services/Personnel/Domain/Personnel.Domain/Personnel.Domain.csproj", "src/Services/Personnel/Domain/Personnel.Domain/"]
RUN dotnet restore "src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Migrator/Personnel.Infrastructure.Migrator.csproj"
COPY . .
WORKDIR "/src/src/Services/Personnel/Infrastructure/Personnel.Infrastructure.Migrator"
RUN dotnet build "Personnel.Infrastructure.Migrator.csproj" -c $BUILD_CONFIGURATION -o /app/build

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как передать аргументы консольному приложению .NET C# при запуске в Docker Compose?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как предоставить входные данные консольному приложению с помощью cin в Qt Creator
    Anonymous » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как подключить отладчик к консольному приложению dotnet в VS Code?
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Pycharm Не удалось подключиться к консольному процессу
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Pycharm не может подключиться к консольному процессу
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

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