Dockerでサクッと使い捨ての開発環境を用意する

129件のシェア(ちょっぴり話題の記事)

もこです。

「各種アプリケーションのバージョン管理が面倒」

「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を汚すことなく開発できるようになりました!