You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Jenkins向另一服务器部署Docker Compose流水线?

解决Jenkins流水线在远程服务器执行docker-compose命令的问题

你当前的流水线代码是在Jenkins服务器本地执行docker-compose命令,要实现到另一台目标服务器执行,有两种常用方案,不需要修改POST请求头(那是误解,不适用这个场景):

方案一:用SSH插件远程执行命令

  1. 安装SSH插件:进入Jenkins后台的「Manage Jenkins」→「Plugins」→「Available plugins」,搜索「SSH plugin」并安装,重启Jenkins生效。
  2. 配置远程服务器连接:
    • 进入「Manage Jenkins」→「Configure System」,找到「SSH Servers」区域。
    • 点击「Add」,填写目标服务器的信息:名称(自定义)、主机IP(172.16.0.x)、端口(默认22)、用户名,选择认证方式(密码或SSH密钥,需提前在Jenkins凭证管理中添加对应凭证)。
    • 点击「Test Connection」验证连接是否成功,保存配置。
  3. 修改流水线代码:
    使用sshCommand步骤在远程服务器执行命令,示例如下:
    pipeline {
        agent any
        stages {
            stage('更新远程服务器Docker服务') {
                steps {
                    sshCommand(
                        remote: [
                            name: '目标服务器自定义名称',
                            host: '172.16.0.x',
                            port: 22,
                            username: '远程服务器用户名',
                            credentialsId: 'Jenkins中存储的远程服务器凭证ID'
                        ],
                        command: 'cd /你的docker-compose文件所在目录 && docker-compose pull && docker-compose up -d'
                    )
                }
            }
        }
    }
    

方案二:将目标服务器配置为Jenkins代理节点

  1. 添加代理节点:
    • 进入「Manage Jenkins」→「Nodes」→「New Node」,输入节点名称,选择「Permanent Agent」,点击「OK」。
    • 配置远程工作目录(比如/var/jenkins_agent),启动方式选择「Launch agent via SSH」,填写目标服务器IP,选择之前配置好的SSH凭证,设置节点标签(比如remote-docker-server),保存配置。
    • 等待节点连接成功,状态变为「Online」。
  2. 修改流水线代码:
    指定流水线在目标节点上执行,示例如下:
    pipeline {
        agent { label 'remote-docker-server' } // 替换为你设置的节点标签或名称
        stages {
            stage('更新Docker服务') {
                steps {
                    // 如果目标服务器是Linux用sh,Windows用bat
                    sh 'cd /你的docker-compose文件所在目录 && docker-compose pull && docker-compose up -d'
                    // Windows环境替换为:bat 'cd C:\\你的docker-compose文件所在目录 && docker-compose pull && docker-compose up -d'
                }
            }
        }
    }
    

注意事项

  • 目标服务器必须提前安装Docker和docker-compose,并且保证当前执行命令的用户有Docker操作权限。
  • 若用SSH方案,确保Jenkins服务器能通过SSH正常连接目标服务器;若用代理节点方案,目标服务器需要安装Java环境(Jenkins代理运行依赖)。

内容的提问来源于stack exchange,提问作者Dawid Bryndza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:10:31