Dockerでサクッと使い捨ての開発環境を用意する
もこです。
「各種アプリケーションのバージョン管理が面倒」
「Dockerfileにするほどでもないけどコンテナの中で実行したい」
などなど、作業マシンを汚したくないときなど結構あると思います。
Dockerfileなどでアプリケーションのみを入れたコンテナとは違う使い方をした、「作業用コンテナ」を作ってみました。
ベースのコンテナを作る
まずは最新のUbuntuのコンテナの中に入ります
docker run --name="dev_container" -it ubuntu:latest
コンテナに入ったらパッケージを更新し、開発環境などに必要なパッケージ類をインストールしていきます。
apt update -y apt install curl vim git net-tools build-essential -y # などなど、必要なパッケージを入れていきます
今回はNode.js v12 とyarnを入れた状態のコンテナがほしいので、インストールしていきます
curl -sL https://deb.nodesource.com/setup_12.x | bash - apt install nodejs -y node -v # v12.5.0 curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list apt update -y && apt install yarn -y yarn -v # 1.16.0
コンテナをコミットする
一通り開発に必要なパッケージなどをインストールし終えたら、コンテナをコミットしてイメージを作成します
exit # コンテナのbashから抜ける docker commit dev_container dev_container docker images REPOSITORY TAG IMAGE ID CREATED SIZE dev_container latest 9cdf20f5601c 4 seconds ago 500MB
と、これで一通りの開発用コンテナの準備はできました。 一旦開発用コンテナの中に入って確認してみましょう。
docker run -it dev_container node -v # v12.5.0
作業用ディレクトリもマウントする
せっかくなので一発で開発用のディレクトリと開発用のコンテナを起動できるよう、dev
ファイルを作り、ローカルの/usr/local/bin
に入れます
# /usr/local/bin/dev docker run -v $PWD:/work -it dev_container
~/work $ dev root@caf22e133e93:/# cd work/ root@caf22e133e93:/work# ls blog join.md
これでどこでもdevコマンドを叩けばマウント済みのコンテナ内に入れて、ホストOSを汚すことなく開発できるようになりました!