複数のnode.jsがインストールされたimageをdockerで作成した

時間がとれたので、やっとImmutable Infrastructureとやらにふれみた。
サーバーを容易に作っては壊すを簡単に行えるDockerを使用して、今回はVagrant上で複数のnode.jsがインストールされたimageを作成してみた。

Vagrant 1.4 からDocker Provisionerにが使えるので、Vagrantfileは以下のようにした。

Dockerの公式centosのイメージを使ってimageをbuildする。
projectディレクトリにはDockerfileとインストールするnode.jsのバージョンを指定した.node-versionファイルをおいてあり、それをsyncするようにしておく。

Dcokerfileは以下のようにした。

公式のCentosのイメージをベースとする。

yumのアップデートと必要なパッケージの取得

ndenvをインストール

ndenvのパスを通す

node-buildのインストールとパスを追加

インストール用の実行ファイルとインストールバージョンを記載したファイルを/root直下に追加。
あとはndenvを使い、実際のインストールはinstall.shというファイルを実行。

一点だけエラーになったので手を入れている箇所があり、
/dev/fd/62: No Such File or Directory というエラーがでてインストールができないという状況になってしまった。
dev/fd ファイルがないためエラーになっていたので、

として回避した。
とりあえず、これで必要なnod.jsのはいったimageはできるっぽい。

参考にしたページ: http://www.ducea.com/2009/02/18/linux-tips-bash-completion-devfd62-no-such-file-or-directory/
repository: https://github.com/kazu69/docker-ndenv

Comments