at_takuma.fukuda
2022年11月22日 11時18分
Docker HubではNode-REDのコンテナイメージが配布されています。 Armadillo Base OS搭載製品でNode-REDを使用したソフトウェア開発を行う場合は、このコンテナを使用するのがスマートです。
コンテナイメージダウンロード→コンテナ作成
以下のようにコマンドを実行すると、Docker HUBからコンテナイメージをダウンロードしてコンテナを作成し、自動的にNode-REDが起動します。
[armadillo ~]# podman run -it -p 1880:1880 docker.io/nodered/node-red /bin/sh
*コンテナの1880番ポートをホストOSの任意のポートに割り当てます
後はWebブラウザからNode-REDのフロー編集画面にアクセスし、編集するだけです。
ノードの追加
インターネットに接続されていれば、フロー編集画面からパレットにノードを追加することも出来ます。
注意すべき点としては、ノードを追加する際に依存パッケージのインストールが必要になることがあります。
これはフロー編集画面から行う事は出来ないので、以下のようにコンテナにログインしてインストールを行います。
Node-REDコンテナはAlpine Linuxがベースとなっているので、apkでインストールします。
管理者ユーザでログインしないとパッケージのインストールが出来ませんので注意してください
[armadillo ~]# podman exec -it -u root [コンテナ名] /bin/sh
[armadillo ~]# apk update && apk upgrade && apk add [パッケージ名]
予め使用するノードや依存パッケージが決まっている場合
予め使用するノードや依存パッケージが決まっている場合は、以下のようにDockerfileを使って反映済みのコンテナイメージを作ってしまいましょう
例えば、node-red-contrib-libgpiodを使用する事が決まっている場合は以下のようなDockerfileを作っておけば、
すぐに動作するコンテナイメージをビルド出来ます。
[armadillo ~]# [cat Dockerfile
FROM docker.io/nodered/node-red
LABEL version="1.0.0"
USER root
RUN apk update && apk upgrade && apk addlibgpiod libgpiod-dev && \
npm install node-red-contrib-libgpiod