docker - Nuget 命令在 docker 文件中失败,但在手动运行时失败
问题描述
我正在尝试配置一个容器来运行我的构建。(它是一个 Windows 核心容器。)
当我在 docker 文件中运行 nuget 命令时,它失败了。但是当我将 powershell 连接到容器时,它运行良好。
这是有问题的命令:
nuget sources Add -Name "Common Source" -Source http://CompanyPackages/nuget/Common
我从 docker 文件中运行它,如下所示:
RUN nuget sources Add -Name "Common Source" -Source http://CompanyPackages/nuget/Common
并得到以下错误:
sources: invalid arguments.
但是,当我拿起容器并使用以下方法启动它时:
docker run -it agent:v1
然后在容器内运行相同的命令:
nuget sources Add -Name "Common Source" -Source http://CompanyPackages/nuget/Common
结果是:
Package Source with Name: Common added successfully.
什么会导致它在 dockerfile 而不是容器中失败?
笔记:
如果它有用,这是我的完整 docker 文件:
FROM sixeyed/msbuild:netfx-4.5.2-webdeploy AS build-agent
SHELL ["powershell"]
RUN nuget sources Add -Name "Common Source" -Source http://CompanyPackages/nuget/Common
解决方案
我试过了,让它像这样工作:
如果你Dockerfile
像这样改变你的内容:
FROM sixeyed/msbuild:netfx-4.5.2-webdeploy AS build-agent
SHELL ["powershell"]
RUN ["nuget", "sources" , "Add", "-Name", "\"Common Source\"", "-Source" ,"http://CompanyPackages/nuget/common"]
然后当你跑docker build -t yourImageName .
你最终得到这个:
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM sixeyed/msbuild:netfx-4.5.2-webdeploy AS build-agent
---> 0851a5b495a3
Step 2/3 : SHELL ["powershell"]
---> Running in 10082a1c45f8
Removing intermediate container 10082a1c45f8
---> c00b912c6a8f
Step 3/3 : RUN ["nuget", "sources" , "Add", "-Name", "\"Common Source\"", "-Source" ,"http://CompanyPackages/nuget/common"]
---> Running in 797b6c055928
Package Source with Name: "Common Source" added successfully.
Removing intermediate container 797b6c055928
---> 592db3be9f8b
Successfully built 592db3be9f8b
Successfully tagged nuget-tester:latest
推荐阅读
- java - 为什么 if 语句不排除 Java 中的另一个 if 语句?
- javascript - 如何在一个函数中创建 setTimeOut 并在另一个函数中销毁它?
- java - 无法使用 ClassNotFoundException 从 PCF CLI 运行 Spring Boot 批处理作业
- python - 未能检测到所有平行(窄)矩形 [opencv]
- python - Django 3.1 给出错误 | URLconf 中没有任何模式,如果您在文件中看到有效模式,则问题可能出在
- haskell - Haskell,找到具有最小第二个元素的元组,如果有两个相同的第二个元素值的元组,则用第一个元素排序
- c++ - 如何以简单的方式更改堆上 QVector 数组中包含的对象的值?
- python - 正则表达式查找带有下划线和可选扩展名的文件
- google-cloud-platform - Google Cloud Storage 网络托管:将 http 重定向到 https
- google-sheets - 我可以使用电子表格更新 Google 表单问题吗?