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

如何通过Jenkinsfile连接服务器拉取代码并执行Docker构建?

Jenkins远程服务器拉取代码并Docker构建模板

以下是实现连接目标服务器、拉取代码到服务器、执行Docker构建的Jenkinsfile参考模板,解决你当前仅在Jenkins本地执行构建的问题:

pipeline {
    agent any

    environment {
        // 替换为你的实际配置
        REMOTE_SERVER = "192.168.1.100"  // 目标服务器IP/域名
        REMOTE_USER = "ubuntu"          // 服务器登录用户名
        PROJECT_PATH = "/opt/my-project"// 项目在服务器上的存放路径
        GIT_REPO_URL = "git@gitlab.com:your-group/your-project.git" // Git仓库地址
        GIT_BRANCH = "jks"              // 要拉取的分支
    }

    stages {
        stage('初始化远程项目目录') {
            steps {
                sshagent(['ssh-remote-server-cred']) { // 替换为你的SSH凭证ID
                    sh """
                        ssh ${REMOTE_USER}@${REMOTE_SERVER} "mkdir -p ${PROJECT_PATH}"
                    """
                }
            }
        }

        stage('远程拉取代码') {
            steps {
                sshagent(['ssh-remote-server-cred']) {
                    // 首次克隆/后续更新代码的逻辑
                    sh """
                        ssh ${REMOTE_USER}@${REMOTE_SERVER} "
                            cd ${PROJECT_PATH}
                            if [ -d .git ]; then
                                git pull origin ${GIT_BRANCH}
                            else
                                git clone -b ${GIT_BRANCH} ${GIT_REPO_URL} .
                            fi
                        "
                    """
                }
            }
        }

        stage('远程执行Docker构建') {
            steps {
                sshagent(['ssh-remote-server-cred']) {
                    sh """
                        ssh ${REMOTE_USER}@${REMOTE_SERVER} "
                            cd ${PROJECT_PATH}
                            docker compose up -d --build
                        "
                    """
                }
            }
        }
    }

    post {
        failure {
            echo '构建流程失败,请检查日志排查问题'
        }
        success {
            echo '远程服务器代码拉取及Docker构建已完成'
        }
    }
}

关键说明

  • SSH凭证配置:需要在Jenkins的「凭证管理」中添加目标服务器的SSH私钥凭证,将模板中的ssh-remote-server-cred替换为你的凭证ID。
  • 环境变量统一管理:把服务器地址、项目路径等配置放在environment块,方便后续修改维护。
  • 代码拉取逻辑:通过判断.git目录是否存在,自动选择clone(首次)或pull(更新)操作,避免重复克隆。
  • 远程命令执行:所有拉取代码、Docker构建的操作都通过SSH在目标服务器上执行,确保流程完全在目标环境中完成。

前置准备

  1. Jenkins安装SSH Agent插件(用于加载SSH凭证)。
  2. 目标服务器已安装Git、Docker、Docker Compose。
  3. 确保Jenkins服务器能通过SSH无密码登录目标服务器(通过凭证中的私钥实现)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:21:34