在 jenkins-container 中创建一个 docker 容器,在本地目录或 git 存储库中包含所需的文件以构建容器
Create a docker container inside a jenkins-container with needed files in a local directory or git repository in order to build the container
我目前正在尝试 运行 jenkins 管道,用于从 git 存储库构建 docker 容器。
但是,问题是存储库中的 docker 文件需要特殊文件(安装程序、许可证密钥 txt.files 等),这些文件在技术上已在存储库中提供。
所以我的问题是,我如何才能告诉管道中的 docker-agent,这个文件所在的本地目录,甚至告诉它从存储库中提取这些文件并使用它们.
我知道,您可以克隆存储库,这可能是解决获取所需文件问题的方法,因此我可以从本地 docker 文件构建我的项目,但是我不知道如何告诉詹金斯使用本地 docker 文件。
我唯一知道的是,如何在存储库中指定 docker 文件。
或者 jenkins 是否可以直接使用存储库中的文件?
顺便说一句,私有存储库,但如果我在 jenkins 文件中使用我的凭据,那应该不是问题。
jenkins 容器已安装 docker 并且 docker-socket 已安装到主机。
我感谢每一个答案。
谢谢
是的,您可以检出您的存储库,然后使用该存储库中的文件构建您的 Docker 图像。如果您的管道文件位于同一个存储库中,并且管道已设置为使用存储库中的 Jenkinsfile,则以下工作:
node {
checkout scm
def myImage = docker.build("my-image:${env.BUILD_ID}")
myImage.push()
}
如果您需要签出任何其他存储库,可以使用 Pipeline Snippet generator 为您生成正确的管道语法。
关于构建 Docker 图像的文档(请注意,该文档使用脚本化管道语法):https://www.jenkins.io/doc/book/pipeline/docker/#building-containers
我目前正在尝试 运行 jenkins 管道,用于从 git 存储库构建 docker 容器。
但是,问题是存储库中的 docker 文件需要特殊文件(安装程序、许可证密钥 txt.files 等),这些文件在技术上已在存储库中提供。 所以我的问题是,我如何才能告诉管道中的 docker-agent,这个文件所在的本地目录,甚至告诉它从存储库中提取这些文件并使用它们.
我知道,您可以克隆存储库,这可能是解决获取所需文件问题的方法,因此我可以从本地 docker 文件构建我的项目,但是我不知道如何告诉詹金斯使用本地 docker 文件。 我唯一知道的是,如何在存储库中指定 docker 文件。
或者 jenkins 是否可以直接使用存储库中的文件? 顺便说一句,私有存储库,但如果我在 jenkins 文件中使用我的凭据,那应该不是问题。
jenkins 容器已安装 docker 并且 docker-socket 已安装到主机。
我感谢每一个答案。 谢谢
是的,您可以检出您的存储库,然后使用该存储库中的文件构建您的 Docker 图像。如果您的管道文件位于同一个存储库中,并且管道已设置为使用存储库中的 Jenkinsfile,则以下工作:
node {
checkout scm
def myImage = docker.build("my-image:${env.BUILD_ID}")
myImage.push()
}
如果您需要签出任何其他存储库,可以使用 Pipeline Snippet generator 为您生成正确的管道语法。
关于构建 Docker 图像的文档(请注意,该文档使用脚本化管道语法):https://www.jenkins.io/doc/book/pipeline/docker/#building-containers