如何在 Dockerfile 中为 docker 容器设置 Bash 别名?

新手上路,请多包涵

我是 Docker 新手。我发现我们可以使用 Dockerfile 中的 ENV 指令来设置环境变量。但是如何为 Dockerfile 中的长命令设置 Bash 别名呢?

原文由 np20 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

基本上就像你一直做的那样,将它添加到用户的 .bashrc 文件中:

 FROM foo
RUN echo 'alias hi="echo hello"' >> ~/.bashrc

像往常一样,这仅适用于交互式 shell:

 docker build -t test .
docker run -it --rm --entrypoint /bin/bash test hi
/bin/bash: hi: No such file or directory
docker run -it --rm test bash
$ hi
hello

对于非交互式 shell,您应该创建一个小脚本并将其放在您的路径中,即:

 RUN echo -e '#!/bin/bash\necho hello' > /usr/bin/hi && \
    chmod +x /usr/bin/hi

如果您的别名使用参数(即 hi Jim -> hello Jim ),只需添加 "$@"

 RUN echo -e '#!/bin/bash\necho hello "$@"' > /usr/bin/hi && \
    chmod +x /usr/bin/hi

原文由 Erik Dannenberg 发布,翻译遵循 CC BY-SA 4.0 许可协议

要创建现有命令的别名,也可以使用 ln -s

 ln -s $(which <existing_command>) /usr/bin/<my_command>

原文由 Laurent Magnin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题