Dockerで雑に使える開発環境を作る
永らくMacを使っていたこともあって、開発環境は基本的にMac上に構築して済ませていた。構築といってもdotfiles系をgithubで管理しておいて適宜cloneしてきて、ツールやライブラリの類はhomebrewで導入するというお馴染のやつ。
で、この度DELLのXPS13を買って(たぶん)10年ぶりくらいにWindowsに帰ってきたので、さてはてどうしよう。離れてる間にWindows上でbashが動くようになってるものの、常用するにはまだ色々と怪しいっぽいし、さりとてmingwとかmsysとかcygwinとかで頑張るのもしんどい。マシンスペックに余裕があるので正攻法でVirtualBox入れてVMを立てるんでも良かったんだけど、折角なのでDockerでコンテナ立てて開発環境にする、というのに挑戦してみることに。
kan/my-dev-docker
Contribute to my-dev-docker development by creating an account on GitHub.
github.com
当然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のバグが直るのが一番良いんだけども)。もうしばらく使ってみて知見を溜めていきたい。