DockerでNode.js環境を構築する
Dockerを来月から使用することになったので、勉強がてらNode.jsの環境を作成していこうと思う。
とりあえずVargrantでLinux環境を構築する
Vargrantファイルを用意します。git と vscode と GNOME をインストールしておきます。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.provision "docker"
config.vm.network "private_network", ip: "192.168.95.10"
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.cpus = 2
vb.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
# vscode install
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
yum check-update
sudo yum install code
# git install
sudo yum -y install git
# GNOME install
sudo yum -y groupinstall "GNOME Desktop"
sudo yum -y epel-release
sudo systemctl set-default graphical.target
systemctl get-default
sudo shutdown -r now
SHELL
end
vagrant up で起動します。
Dockerfile を作成して起動を行う
Dockerfileを任意のフォルダに作成します。
$ touch Dockerfile
同一パス上にリポジトリをクローンしておきます。
$ git clone リポジトリのパス
Dockderfileを作成します。
# 元イメージ
FROM centos:centos7
# nodejs npm パッケージをインストールします
RUN yum install -y epel-release
RUN yum install -y nodejs npm
# 今回起動するWebアプリケーションをコピーします
COPY /weblog /weblog
# weblogに移動して必要なパッケージをインストールします
RUN cd /weblog; npm install
# ポートを割り当てます
EXPOSE 8080
# docker run する際のコマンドを設定します
WORKDIR /weblog
CMD ["node", "app.js"]
作成したので、Docker イメージを作成します。
$ docker build -t {イメージ名} .
docker images を実行してイメージ一覧を確認します。
$ docker images
イメージが作成できたので、起動します。
$ docker run -p 8080:3000 -d {イメージ名}
実際に起動しているか確認します。
$ docker ps
対象のIPアドレスにブラウザから接続してみます。
その他(削除や停止等)
コンテナの停止
$ docker stop [コンテナID]
コンテナの削除
$ docker rm [コンテナID]
# 一括
$ docker rm `docker ps -a -q`
イメージの削除
$ docker rmi [イメージID]
コンテナにログイン(コマンドライン操作できる)
$ docker run -it [イメージ名] /bin/bash
DockerでNode.js環境を構築することができました。