我正在本地运行docker容器以解决其状态问题。我并不总是想要执行RUN
/ ENTRYPOINT
,我经常想进入正在运行的容器,做一些事情,然后运行RUN
/ ENTRYPOINT
。
只需按下向上键,在RUN
后ENTRYPOINT
/ docker run bash
可用,这将非常方便。所以我认为如果我可以使用history -s ...
中的Dockerfile
修改历史记录会很好。这样,只要我docker run bash
,我就可以按下并RUN
/ ENTRYPOINT
可用。
当我把它放在docker文件中时,我收到了这个错误:
/bin/sh: 1: history: not found
有没有办法在Dockerfile中设置bash历史记录?
答案 0 :(得分:2)
您收到错误是因为RUN
命令在/bin/sh
中运行,该命令没有history
命令。
要使其工作,您需要在构建期间运行交互式bash shell,因此它将存储您的历史记录条目。
RUN bash -ic 'history -s foobar'
这应该留下一个foobar
作为最新(也可能是唯一)条目的历史文件。
你会在构建期间看到一个关于ioctl的错误...这是正常的,因为交互式bash期望找到一个终端,并且不会是一个终端。但它应该仍然可以正常工作。
bash:无法设置终端进程组(1):不适合设备的ioctl bash:这个shell中没有作业控制
请注意,这将存储给您运行命令的用户。如果您的图片切换到使用USER
语句的非root用户,则应将其放在USER
行之后,以便将其存储在运行图像的用户中。