我正在尝试在 Jenkins 管道中启动 Datadog 代理,但出现以下错误:
第 7 行:警告:第 2 行的 here-document 由文件结尾分隔(需要“EOF”)。 EOF:找不到命令错误。
stage('Install Datadog agent'){
when {
environment(name: "DATADOG_REQ", value: "enable")
}
steps {
script {
echo "Installing Datadog Agent"
sh '''#!/bin/bash
ssh -o ConnectTimeout=30 -t ABC@1234 /bin/bash << EOF || error_exit "creating based folder failed for $service_name"
sudo chmod u+x ./${JOB_NAME}/enableDatadogAgent.sh
sudo chown jenkins:jenkins ./${JOB_NAME}/enableDatadogAgent.sh
echo ${DATADOG_REQ} ${JOB_NAME}
./${JOB_NAME}/enableDatadogAgent.sh ${DATADOG_REQ}
EOF'''
}
}
}
任何帮助都会很有帮助。
我改变了<< EOF with <<- _EOF_, and now it's working.
script {
echo "Installing Datadog Agent"
sh '''#!/bin/bash
ssh -o ConnectTimeout=30 -t ABC@1234 /bin/bash <<- _EOF_ || error_exit "Failed to execute while doing SSH"
sudo chmod u+x ./${JOB_NAME}/enableDatadogAgent.sh
sudo chown jenkins:jenkins ./${JOB_NAME}/enableDatadogAgent.sh
echo ${DATADOG_REQ} ${JOB_NAME}
./${JOB_NAME}/enableDatadogAgent.sh ${DATADOG_REQ}
_EOF_'''
}
stage('Deploy to server') {
steps {
sshagent(['SSH_CREDENTIALS']) {
sh '''
ssh -i ${PEM_KEY_PATH} [email protected] << EOF
set +x
export DOCKER_USERNAME=\$(docker-credential-jenkins get ${DOCKER_REGISTRY} | jq -r '.Username')
export DOCKER_PASSWORD=\$(docker-credential-jenkins get ${DOCKER_REGISTRY} | jq -r '.Secret')
docker login -u \$DOCKER_USERNAME -p \$DOCKER_PASSWORD
docker pull ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest
docker run -d -p 3000:3000 ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest
<< EOF
'''
}
}
}
}
} 这个工作 尝试像这样的代码 << EOF your commands << EOF