我正在尝试通过代理从 jenkins 节点内部连接到 Google Cloud SQL。
我的 Jenkinsfile 如下所示。
第一阶段工作正常。我的代理已启动并正在运行并侦听传入的命令。
问题是它永远不会进入下一阶段。所以我无法连接到数据库。
有没有人知道我能做些什么来克服这个问题或任何其他更好的方法。
pipeline {
agent any
options {
skipDefaultCheckout true
}
stages {
stage('Install goole cloud sql proxy') {
steps {
dir(path: "${env.WORKSPACE}") {
sh '''
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
chmod +x cloud_sql_proxy
./cloud_sql_proxy -instances=INSTANCE_NAME=tcp:3306
'''
}
}
}
stage('Connect to DB') {
steps {
dir(path: "${env.WORKSPACE}") {
sh '''
psql "host=127.0.0.1 port=3306 sslmode=disable dbname=postgres user=postgres"
'''
}
}
}
}
}
我将我的 anwser 从这里的评论中移开。
詹金斯只是在阻止命令./cloud_sql_proxy -instances=INSTANCE_NAME=tcp:3306
您可以在命令末尾添加&
以在后台启动。