我正在尝试从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"
'''
}
}
}
}
}
答案 0 :(得分:0)
我将评论从这里移开。
Jenkins只是阻塞了命令./cloud_sql_proxy -instances=INSTANCE_NAME=tcp:3306
您可以在命令末尾添加一个&
,以在后台启动。