1. ホーム
  2. bash

[解決済み] DockerfileでDockerコンテナにBashのエイリアスを設定するにはどうしたらいいですか?

2023-01-23 03:24:21

質問

Docker初心者です。環境変数の設定に ENV 命令で環境変数を設定できることがわかりました。しかし、Dockerfileの長いコマンドのBashエイリアスをどのように設定するのでしょうか?

どのように解決するのですか?

基本的には、いつもやっているように、ユーザーの .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