You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

命令行参数无法传递至Docker容器ENTRYPOINT的问题求解

我使用Benchmark.Net库开发了一款运行基准测试的控制台应用,该应用被打包进Docker容器,属于docker-compose部署场景的一部分。对应Dockerfile的ENTRYPOINT配置如下:

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Benchmarks.dll", "-f", "*"]

上述参数的作用是指示Benchmark.Net库运行该程序集中的全部测试。

遇到的问题

配置的参数始终无法传递到控制台应用。我的docker-compose配置中没有设置command或entrypoint字段,仅引用了该Dockerfile。我尝试将ENTRYPOINT与CMD搭配使用也无效果,配置如下:

ENTRYPOINT ["dotnet", "Benchmarks.dll"]
CMD [ "-f", "*" ]

该应用需要在CI环境运行,所以默认参数必须保证正常传递。请问我哪里操作有误?该如何解决该问题?

问题更新

我使用原生docker run命令运行容器时,参数可以正常传递,应用也能正常接收参数。但通过docker-compose运行时,应用没有任何输出。我在docker-compose.yml中的服务定义非常简单,仅引用了对应Dockerfile,配置如下:

benchmarks:
    build:
      context: ../
      dockerfile: test/Benchmarks/Dockerfile
      args:
        - NUGET_SOURCE
    depends_on:
      - another.service
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

最终更新

我最初提问时遗漏了关键信息:我是在Visual Studio内部通过dscproj运行该项目的。经排查是Visual Studio为docker-compose项目的运行添加了自有规则,覆盖了命令行配置。
目前该问题暂无正规解决方案,仅存在非最优的临时解决方案。
我的问题与已有的公开问题重复,本案例关闭。


内容的提问来源于stack exchange,提问作者Yan Sklyarenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:24:03