ブログ

Armadillo Base OS:Node-REDコンテナの開発について

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