Dockerの小ネタ集
Dockerコンテナを開発環境として使用する場合にイメージ作成時に設定しておくと便利なことなど。
以下、特に断りのない限りベースイメージはubuntu。
おそらくdebianでも同じだと思う。
Dockefileに以下を記述
RUN apt update && apt -y install sudo \
&& echo «ユーザ名» ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/«ユーザ名» \
&& chmod 0440 /etc/sudoers.d/«ユーザ名»
[!NOTE] exec時に–userオプション付けてrootで入ればいいんだけどね。
逐一別ウィンドウでexecするのは面倒なので。
あと、sudoをパスワードなしで実行できるようにしておかないと悲しいことになるので注意。
Dockefileに以下を記述
RUN apt update && apt install bash-completion \
&& echo ". /usr/share/bash-completion/bash_completion" >> /etc/bash.bashrc
Dockefileに以下を記述
(リダイレクト先はユーザのホームディレクトリの.bashrcでも可)
RUN echo -e "\
bind '\"\C-n\": history-search-forward' \n\
bind '\"\C-p\": history-search-backward'\n\
">> /etc/bash.bashrc
このままだと、^pを2回押さないと順方向サーチができないので
ホストの .docker/config.json に以下を記載しておく。
{
"detachKeys": "ctrl-\\"
}
[!NOTE] コンテナからのデタッチキーが
^\
に変更される。
詳細は「Docker detachKeys」で検索。
Dockefileに以下を記述
RUN echo -e "\
export LANG=C.UTF-8
export LANGUAGE=en_US:
">> /etc/bash.bashrc
[!NOTE] LANG=ja_JP.UTF-8 だとダメ。
コンテナ作成後に気が付いたら、以下でping他をインストールする。
apt update
apt install iputils-ping net-tools