JetBrains Rider Dockerfile 运行/调试配置

问题描述 投票:0回答:1

我已设置配置以在容器中运行我的应用程序。

运行/调试配置 Docker Test66\Dockerfile

运行/调试配置

命令预览:

Test66\Dockerfile -t test66 . && docker run --name test66 test66 aaa sss

但是程序参数(aaa sss)没有传入我的应用程序 string[] args

static void Main(string[] args)

如果我从控制台运行命令,一切正常

Dockerfile

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 \["Test66/Test66.csproj", "Test66/"\]
RUN dotnet restore "Test66/Test66.csproj"
COPY . .
WORKDIR "/src/Test66"
RUN dotnet build "Test66.csproj" -c $BUILD_CONFIGURATION -o /app/build

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT \["dotnet", "Test66.dll"\]
c# docker debugging dockerfile rider
1个回答
0
投票

我理解您面临的问题。让我分解并提供解决方案。

问题在于,使用 JetBrains Rider 中指定的运行/调试配置运行 Docker 容器时,程序参数 (

aaa sss
) 未正确传递给应用程序。

问题:

  1. Rider 中的运行/调试配置设置为使用命令
    Test66\Dockerfile -t test66 . && docker run --name test66 test66 aaa sss
    运行 Docker 容器。但是,程序参数 (
    aaa sss
    ) 未正确传递到容器内的应用程序。
  2. 当您从控制台运行相同的命令时,程序参数会正确传递,并且应用程序会按预期工作。

解决办法: 要将程序参数传递给在 Docker 容器内运行的应用程序,您需要修改 Rider 中的运行/调试配置。

  1. 在运行/调试配置中,不应使用命令

    Test66\Dockerfile -t test66 . && docker run --name test66 test66 aaa sss
    ,而应使用以下命令:

    docker build -t test66 . && docker run --name test66 test66 aaa sss
    

    这将首先使用

    Dockerfile
    构建 Docker 映像,然后使用程序参数运行容器 (
    aaa sss
    )。

  2. 确保

    ENTRYPOINT
    中的
    Dockerfile
    设置为
    ["dotnet", "Test66.dll"]
    ,因为这样可以将程序参数正确传递给应用程序。

通过这些更改,在 JetBrains Rider 中使用运行/调试配置时,程序参数现在应该传递到在 Docker 容器内运行的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.