LoginSignup
1
1

More than 5 years have passed since last update.

バージョン指定で Node-RED の docker コンテナを起動する。

Last updated at Posted at 2017-11-06

諸事情により、Node-REDをバージョン指定で複数起動する必要が出たのでメモ。公式 (日本語)
ホスト上でディレクトリを分けて、下準備して npm install --save node-red@0.15.3pm2 あたりでもいいんだけど、ホストで動いているものがあり、あまりいじりたくないので、影響少なそうな方法として。

Node-RED の公式リポジトリより git clone

git clone https://github.com/node-red/node-red-docker.git
cd ./node-red-docker

Node-RED のバージョン設定

  • package.json 編集
vim ./package.json
  • バージョンを 0.15.3 にする。(自己都合)
-         "node-red": "0.17.5",
+         "node-red": "0.15.3",
  • いらないので削除
-     },
+     }
-     "engines": {
-         "node": "4.*.*"
-     }

Node.js のバージョン設定

  • Dockerfile 編集
vim ./latest/Dockerfile
  • Node バージョンを 4 にする。(自己都合)
- FROM node:6
+ FROM node:4
  • 参考: 用意されているDockerfile
    • latest
      • uses official Node.JS base image.
    • slim
      • uses Alpine Linux base image.
      • Small. Simple. Secure. なLinuxディストリビュージョンベース
    • rpi
      • uses RPi-compatible base image.
      • ラズパイ用
  • 参考: Node のバージョン(2017-11-06 現在)
    • v4.8.5 (Latest LTS: Argon)
    • v6.11.5 (Latest LTS: Boron)
    • v5.12.0
    • v7.10.1
    • v8.9.0 (Latest LTS: Carbon)
    • v9.0.0

docker のイメージファイル作成

  • npm WARN でるけど目を瞑る。
sudo docker build -f ./latest/Dockerfile -t mynodered:0.15.3 .
・・・
Successfully built 4304bc2db591
Successfully tagged mynodered:0.15.3
  • イメージ確認。
sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mynodered           0.15.3              4194bb2da581        3 minutes ago       740MB
node                4                   ad2b6ed4225e        40 hours ago        656MB

コンテナ起動

  • Node-RED のユーザディレクトをホスト側に作成
mkdir ~/mynodered-userdir
chmod 777 ~/mynodered-userdir
  • 起動
    • ホストのポートを 1881 にしている。(自己都合)
sudo docker run -d -p 1881:1880 -v ~/mynodered-userdir:/data --name mynodered0153 --restart=always -e FLOWS=flows.json mynodered:0.15.3
  • コンテナの確認
sudo docker ps
1f701d7614b36c3c2f8d6add03418daf54541a6cdd6fa1e1488288d8f3dd8beb
  • ブラウザでアクセス。
    • deploy とかしてみる。
http://{hostname}:1881
  • ホスト側でユーザディレクトリを確認
ls ~/mynodered-userdir
total 24
-rw-r--r-- 1 1001 1001   44 Nov  6 14:08 flows_cred.json
-rw-r--r-- 1 1001 1001  405 Nov  6 14:08 flows.json
drwxr-xr-x 3 1001 1001 4096 Nov  6 14:02 lib
-rw-r--r-- 1 1001 1001 9044 Nov  6 14:02 settings.js

(docker コマンドメモ)

  • コンテナに接続
sudo docker exec -it mynodered0153 bash
  • その他
sudo docker ps -a
sudo docker stop <id_or_name> <id_or_name>
sudo docker rm <id_or_name> <id_or_name>

sudo docker images
sudo docker rmi <id> <id>
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1