【发布时间】:2023-03-24 12:34:01
【问题描述】:
我有 Jenkins Groovy Pipeline,我在其中压缩一个大目录(大约 200 MB)。但是,shell 命令因以下错误而被杀死:
./package-code-to-s3.sh: line 18: 20091 Killed
或
line x: 28026 Killed
或
./package-code-to-s3.sh: line 13: 7162 Killed
以下是我的舞台流水线代码:
stage ("Package") {
sh """#!/bin/bash
set -e
echo "Packging"
chmod +x package-code-to-s3.sh
./package-code-to-s3.sh ${S3_BUCKET}
aws s3 cp packaged.yaml s3://builds/Templates/${env.JOB_NAME}/${env.BUILD_NUMBER}-packaged.yaml
"""
}
以下是package-code-to-s3.sh的代码:
#!/bin/bash
set -e
S3_BUCKET_NAME=$1
FILE_NAME_UUID=`python -c 'import uuid; print str(uuid.uuid1())'`
echo "UUID: $FILE_NAME_UUID"
ZIP="`pwd`/$FILE_NAME_UUID"
echo "ZIP FILE : $ZIP"
cd .aws-sam/build/LambdaHandlers/
echo "Executing zip -fz -q -r $ZIP"
nohup zip -fz -q -r $ZIP . > log.output 2>&1 &
ls -las
cd ../../../
ls -las
ls -las
mv "$FILE_NAME_UUID.zip" $FILE_NAME_UUID
CODE_URI="s3://$S3_BUCKET_NAME/$FILE_NAME_UUID"
aws s3 cp $FILE_NAME_UUID $CODE_URI
如果我从命令行运行相同的命令,它工作得非常好。
对我来说,这似乎是缓冲区或堆内存的问题,或者是在管道中运行 zip 的问题。
我的 Jenkins 实例只运行了一个作业(这个),并且 Jenkins 机器有足够的内存,所以 RAM 应该不是问题。
感谢任何帮助/建议。
编辑
问题已解决
因为日志中没有任何帮助,对我来说这似乎是一个内存问题。我将 package-code-to-s3.sh 的代码复制到了我的 Jenkinsfile 包阶段,然后重新启动了我的 Jenkins 实例。听起来可能很奇怪,通过这样做为我解决了这个问题。
谢谢
【问题讨论】:
-
你能检查一下日志吗?如果是 ubunut,它将在 /var/log/syslog 中,否则在 /var/log/messages
-
@error404 - /var/log/messages 中没有记录指向我面临的这个问题的错误。谢谢你的建议:)
标签: shell jenkins zip jenkins-groovy