我有Jenkins Groovy Pipeline,我在其中压缩一个大目录(大约200 MB)。但是,shell命令因以下错误而被杀死:
./package-code-to-s3.sh: line 18: 20091 Killed
OR
line x: 28026 Killed
OR
./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实例。听起来很奇怪,这样做可以为我解决问题。
谢谢
答案 0 :(得分:0)
由于日志中没有任何帮助,对我来说这似乎是一个内存问题。 我尝试了以下方法:
package
stage
听起来很奇怪,这样做可以为我解决问题。