【发布时间】:2021-12-08 06:51:30
【问题描述】:
请在下面帮助我。 我在一台共享服务器上安装了 Jenkins。目前被多个团队使用,因此不允许在那里安装额外的软件包/软件。 每个团队都有自己的专用从节点添加到他们根据需要进行配置的位置。 同样,我们有一个专用节点来运行我们的工作。(这也是我想运行我的工作的地方)
我有 bitbucket 存储库,其中包含“Jenkinsfile”,其中包含部署步骤和“Dockerfile”,我们希望从中创建容器并在其中运行部署步骤.
我想先用一些例子来测试一下。所以我有这样的“Dockerfile”。
#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
我有“Jenkinsfile”,如下所示。
pipeline {
agent { node { label 'slave_node' } }
stages {
stage('Test') {
agent {
dockerfile true
}
steps {
sh 'cat /etc/os-release'
sh 'curl --version'
sh 'echo Successfully compiled'
}
}
}
}
当我执行这个管道作业时,
- 它获取 Jenkins 文件。
- 在提到的从节点上正确启动。
- 签出回购代码。
- 进入阶段
- 但是当涉及到阶段('Test')时,Node 变回“Master Jenkins”并再次开始检查 repo 代码。 [这是我有问题的地方。我不知道为什么要切换]
- 进入阶段
- 运行“Docker 文件”
- 尝试从集线器拉取图像。但由于“找不到 Docker 命令”而导致作业失败(由于主节点没有设置,因此预期错误。
问题是:为什么 Job 从 Slave_node 切换到 master_node? 请帮忙。提前致谢。
如果我在我的个人笔记本电脑上运行它,它的工作非常好。
【问题讨论】: