我运行带有2个Docker镜像的服务器,其中一个构建和打包,因此在/ tmp上创建了很多短暂的东西.
我希望这个容器/ tmp不受持久卷(union fs或volume)的支持,而是使用主机的/ tmp,而tmp又是一个tmpfs卷,非常适合这种操作.保存对普通驱动器的访问会产生开销并导致访问HDD(磨损),我宁愿尽可能地留在RAM中.
一些选项是:
我是Docker的新手,也许我错过了一些明显的东西.
我搜索一种方法来指定容器停止后可以或必须删除的卷.甚至完全保留在RAM中,除非这是不可行的.另外还有一些简单的方法来安装/ tmp作为这样的容器.
无法弄清楚合适的标题,我不明白dash/bash中的行为.即,如果命令失败,我使用set -e来挽救,并且命令组处理肯定结果.
即.一般方案是:
[ ! wantcommand ] || command
Run Code Online (Sandbox Code Playgroud)
比意味着命令仅在需要时才被执行,并且失败将自动终止脚本.
可能需要一些后处理,在这种情况下我使用它:
[ ! wantcommand ] || { command && postprocess; }
Run Code Online (Sandbox Code Playgroud)
这导致了一些好奇的bughunting,因为这不会杀死壳,我无法得到原因.我现在必须经历一些shell代码,但是想了解原因.
用于检测:
bash -c 'set -e; { false || false && echo "post" ; }; echo "ec $?"'
Run Code Online (Sandbox Code Playgroud)
要么:
bash -c 'set -e; { set -e; false || false && echo "post" ; }; echo "ec $?"'
Run Code Online (Sandbox Code Playgroud)
注意:我不是要求修复,但主要原因是返回码为1,但shell不会退出