请在下面帮助我。 我在一台共享服务器上安装了Jenkins。当前由多个团队使用,因此不允许在此处安装其他软件包/软件。 每个团队都添加了专用的从属节点,可以根据需要在其中进行配置。 同样,我们有一个专用节点来运行我们的工作。(这也是我也要运行我的工作的地方)
我有一个Bitbucket存储库,其中带有“ Jenkinsfile ”,其中包含部署步骤,而“ Dockerfile ”中,我们想从中创建容器并在其中运行部署步骤
我正在尝试通过一些示例对此进行测试。所以我有这样的“ Dockerfile ”。
unique=True
我的“ Jenkinsfile ”如下所示。
#This image is Developed from ubuntu:18.04-Dockerhub
FROM ubuntu:18.04
#Updating System Packages and installing required packages
RUN apt-get update && \
apt-get install -y openssh-server wget git curl zip unzip && \
apt-get clean
#Installing rsync
RUN apt-get install -y rsync
当我执行此管道作业时,
问题是:为什么Job从Slave_node切换到master_node? 请帮忙。预先感谢。
如果我在我的个人笔记本电脑上运行它,它就可以正常工作。
答案 0 :(得分:0)
我会在Jenkins中检查您的Docker设置。可能是您已将主节点定义为默认的Jenkins代理,因此,当您仅使用“ dockerfile:true”运行时,它将尝试在主节点上运行构建。
您可以通过在本文档中搜索“指定Docker标签”来找到对该特定选项的引用。
答案 1 :(得分:0)
引用https://www.jenkins.io/doc/book/pipeline/docker/ 我可以使用脚本化管道满足我的需求。所以在这里发布答案作为答案。
但是我仍然不知道声明性管道有什么问题。
node ('slave_node') {
checkout scm
def customImage = docker.build("custom-image-name")
customImage.inside {
sh 'Inside Container'
sh 'cat /etc/os-release'
sh 'curl --version'
sh 'echo Successfully compiled'
}
}
谢谢