没有 space 问题 Jenkins - 在 docker

No space issue Jenkins - in docker

我是 运行 里面的 Jenkins docker。 我收到以下 space 问题。

gzip: /tmp/sbt_a74fec8a/xoquick-1.0.tar.gz: No space left on device
java.lang.RuntimeException: Error gziping /tmp/sbt_a74fec8a/xoquick-1.0.tar. Exit code: 1
    at scala.sys.package$.error(package.scala:27)
    at com.typesafe.sbt.packager.universal.Archives$.gzip(Archives.scala:93)
    at com.typesafe.sbt.packager.universal.Archives$$anonfun.apply(Archives.scala:111)
    at com.typesafe.sbt.packager.universal.Archives$$anonfun.apply(Archives.scala:111)
    at com.typesafe.sbt.packager.universal.Archives$$anonfun$makeTarball.apply(Archives.scala:136)
    at com.typesafe.sbt.packager.universal.Archives$$anonfun$makeTarball.apply(Archives.scala:118)
    at sbt.IO$.withTemporaryDirectory(IO.scala:285)
    at com.typesafe.sbt.packager.universal.Archives$.makeTarball(Archives.scala:118)
    at com.typesafe.sbt.packager.universal.Archives$$anonfun.apply(Archives.scala:111)
    at com.typesafe.sbt.packager.universal.Archives$$anonfun.apply(Archives.scala:111)
    at scala.Function3$$anonfun$tupled.apply(Function3.scala:35)
    at scala.Function3$$anonfun$tupled.apply(Function3.scala:34)
    at scala.Function1$$anonfun$compose.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$$anonfun$apply.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$$anonfun$apply.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$$anonfun.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
[error] (universal:packageZipTarball) Error gziping /tmp/sbt_a74fec8a/xoquick-1.0.tar. Exit code: 1
[error] Total time: 7 s, completed Feb 5, 2015 9:41:58 AM
Build step 'Build using sbt' changed build result to FAILURE
Build step 'Build using sbt' marked build as failure
SSH: Current build result is [FAILURE], not going to run.
Finished: FAILURE

在 docker 中,我导航到 /tmp 文件夹

cd /tmp/

然后

df -h .

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/docker-253:2-18350588-5a4c880a0e55c5b8a78ca16e7ef7fbedb7559cf07b3e249f81b88809901cca72
                  9.9G  9.1G  316M  97% /

我还有足够的名额inside.Why是任务失败了吗?

我检查过这个http://www.ivankuznetsov.com/2010/02/no-space-left-on-device-running-out-of-inodes.html

inode 没有问题 also.There inode 足够 available.Can 有人告诉我问题是什么吗?

Jenkins 作业通常可以消耗超过 ~300m 的 space 所有构建工件,无论您上传到 Docker 容器,版本控制结帐的大小等。

将此添加到 root 的 crontab 以定期清理旧容器。输入sudo crontab -e编辑:

SHELL=/bin/bash
@daily  (echo "Cleaning Docker images at $(date):"; docker rm $(docker ps -a -q); docker rmi $(docker images | grep '<none>' | tr -s ' ' | cut -d ' ' -f 3)) &>> /var/log/dockerClean.log

(如果您喜欢 sh,您可以添加 SHELL 行代替 2>&1 > /var/log/dockerClean.log,或者如果 bash 在您的系统上是默认的,则省略它并且不做任何更改)