当我在服务器内部运行docker compose时,在Jenkins文件中运行docker compose会导致版本错误
在我的服务器中,我只有一行脚本当我在服务器内部运行docker compose时,在Jenkins文件中运行docker compose会导致版本错误,docker,jenkins,docker-compose,jenkins-pipeline,Docker,Jenkins,Docker Compose,Jenkins Pipeline,在我的服务器中,我只有一行脚本 docker compose pull和&docker compose up-d 当我在服务器内部运行这个程序时,它成功地按照指定的方式提取docker文件并将其放置 但是,当我尝试在Jenkins文件中执行此操作时 stage('Deployment') { steps { withCredentials([sshUserPrivateKey( credentials
docker compose pull和&docker compose up-d
当我在服务器内部运行这个程序时,它成功地按照指定的方式提取docker文件并将其放置
但是,当我尝试在Jenkins文件中执行此操作时
stage('Deployment') {
steps {
withCredentials([sshUserPrivateKey(
credentialsId: '<id>',
keyFileVariable: 'KEY_FILE')]) {
sh '''
<authentication steps...>
ssh root@<servername> \
&& cd <proj_root_dir> \
sh ./deploy.sh
ssh-agent -k
'''
}
}
}
我正在使用的版本是3.7
,当我将版本更改为3.2
时,它表示不支持我正在使用的卷。这很奇怪,因为当我在服务器上手动运行脚本时,它工作正常
有什么想法吗?docker版本的在服务器上和容器中的输出是什么?我怀疑他们运行的是不同的发动机,而集装箱最多只能支持3.2。我没有处理詹金斯文件的经验,但已经解决了这类错误。@leeman24是的,你是对的。我想知道为什么它会给我一个版本的不同?我仍然在服务器内部运行该命令。您知道如何使它们相等吗?您的命令实际上是ssh吗root@somewhere&&deploy.sh
?这将启动ssh连接,完成后在本地运行部署脚本。你的意思是该命令不能在服务器上运行吗?@Dawn17,在你的Jenkins容器中,Docker版本似乎已经过时了。你可能想寻找一个新的形象或建立自己与最新的Docker引擎。它不需要与主机(服务器)的版本完全相同,但应该相对较新。
Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version ("2.0", "2.1", "3.0", "3.1", "3.2") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/