我在本地运行 docker 容器以对其状态进行故障排除。我并不总是想执行RUN/ ENTRYPOINT,我经常想进入正在运行的容器,做一些事情,然后运行RUN/ ENTRYPOINT。
只需按向上键即可获得RUN/ ,这将非常方便。所以我想如果我可以用来修改历史记录就好了。这样,只要按下,我就可以按下/按钮。 ENTRYPOINTdocker run bashhistory -s ...Dockerfiledocker run bashRUNENTRYPOINT
当我将其放入 docker 文件中时,出现以下错误:
/bin/sh: 1: history: not found
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Dockerfile 中设置 bash 历史记录?
您收到错误是因为RUN命令在 中运行/bin/sh,而该命令没有history可用的命令。
要实现此功能,您需要在构建期间运行交互式 bash shell,以便它将存储您的历史记录条目。
RUN bash -ic 'history -s foobar'
Run Code Online (Sandbox Code Playgroud)
这应该留下一个历史文件及其foobar最新的(也可能是唯一的)条目。
您将在构建过程中看到有关 ioctl 的错误...这是正常的,因为交互式 bash 期望找到一个终端,但实际上不会有终端。但它应该仍然可以正常工作。
bash:无法设置终端进程组 (1):设备的 ioctl 不合适
bash:此 shell 中没有作业控制
请注意,这将为您运行命令的用户存储。如果您的映像使用该语句切换到非根用户USER,您应该将其放在该USER行之后,以便它存储在您的映像运行时所使用的用户中。
| 归档时间: |
|
| 查看次数: |
1794 次 |
| 最近记录: |