我有以下内容Dockerfile
:
FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
WORKDIR /app
COPY . ./aspnetapp/
WORKDIR /app/aspnetapp
RUN dotnet publish -c Release -o out
FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
WORKDIR /app
COPY --from=docker.m.our-intra.net/microsoft/dotnet:2.1-sdk /app/aspnetapp/MyProject.WebApi/out ./
ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
该映像已在本地成功构建。
我正在尝试配置Jenkins管道,并尝试Jenkinsfile
使用以下步骤构建映像:
stage('Build') {
steps {
script {
echo 'Build...'
sh 'docker build -t mytag:v${BUILD_NUMBER} -f Dockerfile .'
echo 'Build Completed'
}
}
}
但是在Jenkins控制台中,我得到了错误:
未知标志:来自
我应该如何编辑我的Dockerfile
,尤其是--from
标签,以便能够在本地和通过Jenkins管道构建图像?
更新: 我已经将Docker更新为18.06.1-ce版本。仍然有同样的错误。
詹金斯版 2.89.4
Docker Pipeline插件安装版本1.9.1
更新2: 我添加了docker version
向我展示Docker版本的命令:
stage('Build') {
steps {
script {
echo 'Build...'
sh 'docker version'
sh 'docker build -t fact:v${BUILD_NUMBER} -f Dockerfile .'
echo 'Build Completed'
}
}
}
它输出以下内容:
Client:
Version: 18.06.1-ce
API version: 1.24 (downgraded from 1.38)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:03 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 1.12.6
API version: 1.24 (minimum version )
Go version: go1.8.3
Git commit: 3e8e77d/1.12.6
Built: Wed Dec 13 12:18:58 2017
OS/Arch: linux/amd64
Experimental: false
我认为这是docker引擎版本问题。您的Jenkins机器上的Docker引擎版本必须为17.05或更高版本,以支持--from
或多阶段构建。
从文档-
多阶段构建是一项新功能,需要守护程序和客户端上使用Docker 17.05或更高版本。
参考-https: //docs.docker.com/develop/develop-images/multistage-build/#use-
multi-stage-builds
我有一个Jenkinsfile多分支管道脚本,它在两个不同的Jenkins系统上运行。Jenkins文件依赖于特定的标签名。在其中一个系统中,基于标签的代理可用,而在另一个系统中,基于标签的代理不可用(有意)。前者运行良好。在没有匹配标签的Jenkins系统中,作业只是挂起,因为它找不到匹配的代理。 如果找不到标签,有没有办法指定中止(或不启动)生成的选项?
问题内容: 尝试使用 这将失败,并显示身份验证错误。除了使用以外还有其他方法吗 withCredentials 在Jenkinsfile中签出标签 问题答案: 花完之后,几个小时就到了 在声明式管道中使用GitSCM的正确方法是 不像我在网络上的大多数地方都找到的
问题内容: 通过使用詹金斯,我创建了一个“管道”类型的项目。然后将“ SCM管道”设置为。您可以检查我的GitHub存储库: 我想使用Jenkins管道构建docker映像。这是Jenkinsfile: Dockerfile也非常简单: 当我运行项目时。我收到以下错误: 这是完整的控制台输出 我检查了工作区: 测试 目录中什么都没有,但是Jenkinsfile和Dockerfile都在 test
通过使用jenkins,我创建了一个“管道”类型的项目。我设置了“来自SCM的管道”来获取< code>Jenkinsfile。你可以查看我的GitHub库: 我想使用 Jenkins 管道来构建一个 docker 映像。以下是 Jenkinsfile: Dockerfile文件也非常简单: 当我运行这个项目时。我得到以下错误: 这是完整的控制台输出 我检查了工作区: 测试目录中没有任何内容,但J
我是Docker和Jenkins的新手,我正在尝试创建一个Jenkins管道来构建Docker的形象。我在尝试构建时遇到了问题,并不断收到此错误: /var/jenkins_home/workspace/Docker-Pipeline@tmp/耐用-a11b32f8/脚本。sh:第1行:docker:未找到命令 我已经在虚拟机上安装了ubuntu 我正在做和他完全一样的事情,但总是失败。
我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline