在从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容器复制到主机