如果生成失败,如何将文件从生成容器复制(日志)到主机



在从Dockerfile下的命令运行docker build时,如何将一些日志文件从容器复制到主机?一旦构建失败,构建容器就会消失。

一种方法是在每个RUN命令吞下非零退出代码后,将日志输出到STDOUT,然后重新推送原始退出代码。但它似乎并没有扩大规模,就像如果我们想复制整个目录,我们不会压缩并将其输出到控制台:P

有什么可能的解决方案吗?也许将文件从主机连接到容器,或者在构建过程中装载目录?

如果将日志推送到stdout,则可以使用以下命令获取日志:

LOG_PATH=$(docker inspect --format='{{.LogPath}}' <the-name-of-your-docker>)
echo ================= Docker log start ===========================
sudo cat $LOG_PATH
echo ================= Docker log end =============================

如果您希望容器数据在容器退出后保持不变(例如日志、数据库或其他东西(,那么您应该将本地驱动器/文件夹装载到容器中,并将需要保持的内容写入装载位置。在您的情况下,将本地文件夹(在主机上(装载到容器中,并将构建日志写入该文件夹。

另请参阅此问题的答案以了解更多选项Docker:将文件从Docker容器复制到主机

最新更新