fix: 修复Jenkins Pipeline序列化错误
问题:java.io.NotSerializableException: java.util.Collections 原因:在each循环内使用Map导致序列化问题 解决方案: - 使用if-else语句替代Map查找 - 避免在Pipeline中使用不可序列化的集合类型 - 保持相同的功能但使用可序列化的方式实现
This commit is contained in:
24
Jenkinsfile
vendored
24
Jenkinsfile
vendored
@@ -141,15 +141,21 @@ pipeline {
|
||||
sortedServices.each { service ->
|
||||
echo "🚀 Deploying ${service}..."
|
||||
|
||||
// 获取容器名称
|
||||
def serviceMap = [
|
||||
'viewsh-gateway': 'aiot-gateway',
|
||||
'viewsh-module-system-server': 'aiot-system-server',
|
||||
'viewsh-module-infra-server': 'aiot-infra-server',
|
||||
'viewsh-module-iot-server': 'aiot-iot-server',
|
||||
'viewsh-module-iot-gateway': 'aiot-iot-gateway'
|
||||
]
|
||||
def containerName = serviceMap[service] ?: "aiot-${service}"
|
||||
// 直接使用字符串拼接获取容器名称(避免序列化问题)
|
||||
def containerName = ''
|
||||
if (service == 'viewsh-gateway') {
|
||||
containerName = 'aiot-gateway'
|
||||
} else if (service == 'viewsh-module-system-server') {
|
||||
containerName = 'aiot-system-server'
|
||||
} else if (service == 'viewsh-module-infra-server') {
|
||||
containerName = 'aiot-infra-server'
|
||||
} else if (service == 'viewsh-module-iot-server') {
|
||||
containerName = 'aiot-iot-server'
|
||||
} else if (service == 'viewsh-module-iot-gateway') {
|
||||
containerName = 'aiot-iot-gateway'
|
||||
} else {
|
||||
containerName = "aiot-${service}"
|
||||
}
|
||||
|
||||
def sshKey = '/var/jenkins_home/.ssh/id_rsa'
|
||||
def sshOpts = "-o StrictHostKeyChecking=no -o ConnectTimeout=10 -i ${sshKey}"
|
||||
|
||||
Reference in New Issue
Block a user