質問: AWS EC2 用のセットアップシェルスクリプトを dockerfile に移植しようと思い ``` FROM ubuntu:16.04 COPY setup.sh /root/ RUN bash /root/setup.sh ``` という Dockerfile を描いて `docker build -t test -f Dockerfile .` で実行してみたのですが ``` /root/setup.sh: 8: /root/setup.sh: sudo: not found ``` と言われます sudo を消せばいいだけなのですが できれば setup ファイルそのままの状態で流用できれば EC2用とdocker用で2重管理しなくてすみます また sudo をインストールすれば解決しそうですが docker 内ではどうせ root でしか作業しないので sudo コマンド自体を無視するようにできないでしょうか alias sudo='' みたいなことを描いてみたんですがやはり `sudo: command not found` になります setup.sh のエラー箇所まではこんな感じです ``` #!/bin/bash #alias sudo='' PYENV=~/.pyenv PYENV_BIN=$PYENV/bin ##Install git and python sudo yum -y install git git clone https://github.com/pyenv/pyenv.git $PYENV echo -e "\nexport PYENV_ROOT=$PYENV" | sudo tee -a ~/.bash_profile >> /dev/null echo -e "\nexport PATH=$PYENV_BIN:$PATH" | sudo tee -a ~/.bash_profile >> /dev/null ```
回答: (コメントより) alias は interactive mode でしか利用できませんので、例えば sudo を関数化してしまう方法が考えられます。`function sudo { "$@"; }`