如何在Dockerfile中设置命令历史logging
我正在本地运行docker容器来解决其状态。 我并不总是想执行RUN
/ ENTRYPOINT
,我经常想进入正在运行的容器,做一些事情,然后运行RUN
/ ENTRYPOINT
。
只要按下向上键就可以让ENTRYPOINT
docker run bash
之后, RUN
/ ENTRYPOINT
将会非常方便。 所以我认为这将是很好,如果我可以在Dockerfile
修改history -s ...
的历史history -s ...
。 这样,只要我docker run bash
,我可以按下,并有RUN
/ ENTRYPOINT
可用。
当我把这个在docker文件中,我得到这个错误:
/bin/sh: 1: history: not found
有没有办法在Dockerfile中设置bash历史logging?
由于RUN
命令在/bin/sh
运行,而没有可用的history
命令,所以会出现错误。
为了使这个工作,你需要在构build过程中运行一个交互式的bash shell,所以它会存储你的历史logging条目。
RUN bash -ic 'history -s foobar'
这应该留下一个历史文件foobar
作为其最近(也可能是唯一)的条目。
在构build关于ioctl的过程中,您会看到一个错误…这很正常,因为交互式bash希望find一个terminal,而不会有一个terminal。 但它应该仍然工作正常。
bash:不能设置terminal进程组(1):设备不适当的ioctl
bash:在这个shell中没有作业控制
请注意,这将作为您运行该命令的用户存储。 如果您的映像使用USER
语句切换到非root用户,则应将其放在USER
行之后,以便将其存储在映像运行所在的用户中。