最近、環境をなるべく壊さずに開発環境を保持できるDevContainerの立ち上げが少しずつ早くなってきました。 Docker(Desktop)を入れてれば(ここポイント)、準備しておいた開発環境を持ち込めるというものです。
※ Rancher Desktopを試して酷い目に遭いました、この部分はDDの方が一日の長あり。
基本的に私は、普通のDockerイメージを用意した上での『ちょい足し』をベースにやってます。
ベースの環境
例えば一例として、Jekyllによるブログ環境(書いてる環境)で対応してみるとすると、ざっくりこうなります。
|
|
ポイントがちょっとあります。
- 作業用ユーザーは準備しておく(間違ってもrootで作業とかNG)
- 作業用ユーザーは
sudo
は使えるようにしておくsudo
のインストールNOPASSWD:ALL
でsudo
が動かせるようにしておく
この辺の原則を守っておくと概ねOKみたいです。 ここを崩さずに必要になるアプリ環境の準備をすれば概ねOKです。
コンテナ軌道をお手軽化するために、docker-compose.yml
もあわせて準備します。
|
|
Dockerfile
はDevContainerの管理ディレクトリ(.devcontainer
)においているため、context
で場所を切り替えてますが、それ以外はシンプルな構成だと思います。
DevContainer対応
設定ファイル(.devcontainer/devcontainer.json
)では、さしあたり『ちょい足し』設定を突っ込むことになります。
|
|
docker-compose.yml
は追加設定(custom.yml
)による重ね技を持ち込むようにしています。といってもこれだけ…
|
|
無限sleepを使ってコンテナが落ちないようにキープさせてるだけです。
なんならjekyll serve
を走らせてもOKです(この部分はMakefile
に書いてます。
これで、ブログ用のディレクトリを開いたら、“Reopen in Container"で切り替えできます。 さらにCodespacesを使って開かせることもできるので(検出して環境構築をしてくれる)、パソコンにてブラウザだけ(GitHubにログインできれば)で執筆可能です。 なんとまぁ便利な世の中に…