Dockerで雑に使える開発環境を作る

Kan Fushihara
3 min readJan 4, 2017

永らくMacを使っていたこともあって、開発環境は基本的にMac上に構築して済ませていた。構築といってもdotfiles系をgithubで管理しておいて適宜cloneしてきて、ツールやライブラリの類はhomebrewで導入するというお馴染のやつ。

で、この度DELLのXPS13を買って(たぶん)10年ぶりくらいにWindowsに帰ってきたので、さてはてどうしよう。離れてる間にWindows上でbashが動くようになってるものの、常用するにはまだ色々と怪しいっぽいし、さりとてmingwとかmsysとかcygwinとかで頑張るのもしんどい。マシンスペックに余裕があるので正攻法でVirtualBox入れてVMを立てるんでも良かったんだけど、折角なのでDockerでコンテナ立てて開発環境にする、というのに挑戦してみることに。

当然DB使うサービスの類いはそれぞれDockerfile用意してdocker-composeでセットにして環境を作っているんだけど(そちらについても試行錯誤してるのでそのうちまとめたい)、もっと小粒なproductやリモートの環境に入って色々する時の足場みたいな雑に使える環境用のdocker imageを作ってみようという試み。

Dockerfileを見てもらえれば大体分かるんだけれども

  • ubuntuの公式イメージをベースに
  • gccとかvimとかzshとかtmuxとか主だったものをaptでつっこみ
  • pecoとかghqはバイナリをダウンロードして展開
  • 開発用のユーザーを作ってssh鍵とかssh/configとかをCOPY
  • 前述のdotfilesプロジェクトをcloneしてきてリンクを貼る
  • vimのpluginをダウンロード

みたいなことをしてる。困ったこととしてはghqが最新バージョンの3つ前くらいから配布されてるバイナリが壊れてるのと、vimはvim-plugがCLIでのplugin installに対応してる(vim +PlugInstall +qall とかで出来る)んだけど、同じことをzplugでもやろうとするとエラーになる(issueがある)。仕方ないので ~/.zplug をvolumeとしてマウントしてコンテナ起動のたびにzplug installが走らないようにしてる。

とりあえずしばらく使ってるけど、雑に起動して終わったら消してしまえるし、変なことになっても使い捨てられるのは割と精神衛生上よい感じ。こうやってまとめてみて、むしろ homeディレクトリ全体をマウントするようにすればdotfilesをcloneしなくても良くなるのかなあと思ったり(zplugのバグが直るのが一番良いんだけども)。もうしばらく使ってみて知見を溜めていきたい。

--

--