当我在服务器内部运行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/