我已设置配置以在容器中运行我的应用程序。
运行/调试配置 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"\]
我理解您面临的问题。让我分解并提供解决方案。
问题在于,使用 JetBrains Rider 中指定的运行/调试配置运行 Docker 容器时,程序参数 (
aaa sss
) 未正确传递给应用程序。
问题:
Test66\Dockerfile -t test66 . && docker run --name test66 test66 aaa sss
运行 Docker 容器。但是,程序参数 (aaa sss
) 未正确传递到容器内的应用程序。解决办法: 要将程序参数传递给在 Docker 容器内运行的应用程序,您需要修改 Rider 中的运行/调试配置。
在运行/调试配置中,不应使用命令
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
)。
确保
ENTRYPOINT
中的 Dockerfile
设置为 ["dotnet", "Test66.dll"]
,因为这样可以将程序参数正确传递给应用程序。
通过这些更改,在 JetBrains Rider 中使用运行/调试配置时,程序参数现在应该传递到在 Docker 容器内运行的应用程序。