tmuxをはじめて使う

イメージ
初めてtmuxを使ってみた最低限の利用
以前から使いたかったtmux

最近はリリースなどは自動化(シニアエンジニアの私はSCPアップロードから知っている。。)だったり、コンテナ化やログディレクトリのマウントや同期など直接ログインしなくてもいい環境だったりするが、私の作業環境ではログインすることが多々あります。

そんな中でそこそこ台数があるサービスなんかで、confファイルを編集なんてたまーにあったりしますが、同じ作業をすることになるので同時にコマンドを打ちたかったりします。SSHクライアントでもできるものがあるようですが、OSに依存せず利用したいのでtmuxを利用することにしました。

インストール $ brew install tmux tmuxを起動 $ tmux prefixはデフォルトの ctrl + b ペイン分割(左右) prefix % ペイン分割(上下) prefix " ペインの移動 prefix o ペインの破棄 prefix x
そして一番やりたかった、ウィンドウで開いているペインに対してコマンドの同時実行
開始 prefix :set-window-option synchronize-panes on 終了 prefix :set-window-option synchronize-panes off
ウィンドウの終了 prefix &

dokcerでapache+phpのコンテナが立ち上がらなかった時のメモ

dokcerでapache+phpのコンテナが立ち上がらなかった時のメモ


正確にはdocker-composeでapache2.4+php5.5のコンテナとmysql5.5のコンテナを立ち上げる
この時にはまったことを残します。


docker-composeのファイル内容はapache2.4+php5.5・mysql5.5ともにすでにある自分用のベースイメージから
今回の作業ディレクトリにマウントしてサービスを起動するコマンドを記述したものです。

その際にapache2.4+php5.5のコンテナが立ち上がりませんでした。

立ち上がらなかったコンテナを

docker commit コンテナID 作成イメージ名(原因調査なので適当に)

できたイメージから

docker run --rm -it 作成イメージ名 sh

するとこんなエラーが出てきました

$ docker run --rm -it httpd_test sh
docker: Error response from daemon: cannot mount volume over existing file, file exists /var/lib/docker/overlay2/d09afadcb33cb0250cff89422a537f1c8e7af0c413976ce96a2c8a249db74cb0/merged/etc/httpd/conf/httpd.conf.
See 'docker run --help'.

とりあえずマウントしているパスが間違っていないdocker-composeファイルのマウント記述部分を確認
→間違えていない。

すでにイメージの中にファイルがあるのかとベースイメージを作成する時にhttpd.confを削除して再実行
→変わらず。。

ローカルのパーミッション?
→関係なかった

以前にも同様の環境を作成したことがあってdockerにキャッシュでも残っているのか?
→そうではなかった

今日docker for mac のアップデートがあったからか?
→一番怪しいと思っていてファイル単位でのマウントできなくなったのか?疑ったけどそうではなかった。

解決しました
結論的にベースイメージを作成する時にapache2.2のDockerfileをコピーしたんですけれど

ENTRYPOINT ["/usr/sbin/httpd","-D","FOREGROUND"]

って書いてあったんですね

それでdocker-composeファイルでは
command: bash -c "/usr/sbin/apachectl -D FOREGROUND"
って書いてあったものでこれが悪さしていたみたいです。
そもそも2.2と2.4の記述が混ざってしまっていた点と2重で起動コマンドを実行しようとしていたことがよくなかったんでしょうね。

ベースイメージ作成時の
ENTRYPOINT ["/usr/sbin/httpd","-D","FOREGROUND"]

これで起動できるようになりました。

翻訳すると
既存のファイル・ボリュームにマウントできません
このエラーのためにどハマりいたしました。。。

コメント

このブログの人気の投稿

GOOICE VRゴーグルを購入しました!

【amazon linux 2】を使ってみた

Docker for Windows 起動しない