docker - 如何在 docker 容器中为 CLI 添加一些内容?
问题描述
我想在传递给 docker 容器的 CLI 中添加一些内容。
我希望它像这样运行:
docker run -it mstools msbuild.exe --version
但是,为了在内部进行这项工作,我需要在 msbuild.exe 和单声道之前添加完整路径,如下所示:
mono /Microsoft.Build.Mono.Debug.14.1.0.0-prerelease/lib/msbuild.exe --version
当我将下面Dockerfile
的命令与命令一起使用时,我得到了这个:
$ docker run -it mstools msbuild.exe --version
msbuild.exe: 1: msbuild.exe: [/usr/bin/mono,: not found
如果我跳入容器并检查路径:
$ docker run -it --entrypoint=bash mstools
root@eb47008f092e:/# which mono
/usr/bin/mono
我错过了什么??
Dockerfile:
FROM centeredge/nuget
ARG VERSION="14.1.0.0-prerelease"
RUN nuget install Microsoft.Build.Mono.Debug -Version $VERSION -Source "https://www.myget.org/F/dotnet-buildtools/"
ENV PATH="/Microsoft.Build.Mono.Debug.$VERSION/lib/:${PATH}"
ENTRYPOINT ['/usr/bin/mono', " /Microsoft.Build.Mono.Debug.$VERSION/lib/$1 $@"]
解决方案
推荐阅读
- php - 连接到 Cloud Datastore 时出现致命错误代码 401
- sql - 消息 240,锚点和列中的递归部分之间的类型不匹配
- java - 为什么我编码错误,geotools create shapefile chinese setAttribute error
- kotlin - 通过 vert.x 发送文件作为响应的表达式的名称是什么
- python - 如何消除导入文本的一部分
- reactjs - 导入默认导出未定义
- symfony - Symfony 4登录表单:认证成功,但重定向后认证立即丢失
- .net - 安装 Windows 服务时 Topshelf 抛出错误
- c++ - 为什么擦除命令会结束我的 while 循环?
- installation - 黑板安装