一尘不染

如何在Dockerfile中为Docker容器设置bash别名?

docker

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


阅读 506

收藏
2020-06-17

共1个答案

一尘不染

基本上就像您经常做的那样,将其添加到用户的.bashrc

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

和往常一样,这仅适用于交互式外壳:

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

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

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
2020-06-17