该项目在 Docker Hub 上提供了多个不同版本的 Docker 容器,分为两类:
-minimal
后缀的镜像。这些容器旨在包含运行 Node-RED 及其核心节点所需的绝对最小库。具体来说,-minimal
容器不包含安装某些节点组件时所需的原生构建工具。
这两组镜像都基于 NodeJS Alpine 容器。Alpine 是一个 Linux 发行版,旨在提供最小的安装占用空间,它被用作许多语言运行时容器(例如 NodeJS 和 Python)的基础。作为减少大小的许多优化的一部分,它使用 musl libc 而不是通常的 glibc 实现。
Musl 在大多数应用程序中都能正常工作,但在某些情况下可能会导致问题,例如与某些 SAP 节点以及一些低级视频编解码器。
如果您想扩展提供的 Docker 容器,那么您需要使用 Alpine 的包管理工具 apk
来安装额外的库或应用程序。
FROM nodered/node-red:latest
USER root
RUN apk add py3-pip py3-numpy py3-pandas py3-scikit-learn
RUN pip install tensorflow
USER node-red
除了基于 Alpine 的容器,Node-RED Docker Git 项目还包含一个脚本,用于构建基于 Debian Linux 发行版的 Node-RED Docker 容器版本。这很有用,因为 Debian 是一个更主流的 Linux 发行版,并且许多节点都包含如何安装先决条件的说明。
您可以运行以下命令在本地构建容器
$ git clone https://github.com/node-red/node-red-docker.git
$ cd node-red-docker/docker-custom
$ ./docker-debian.sh
这将生成一个名为 testing:node-red-build
的容器,可以按如下方式运行:
$ docker run -d -p 1880:1880 -v node_red_data:/data --name myNRtest testing:node-red-build
这个容器可以扩展以添加您项目所需的先决条件。例如,要为 node-red-contrib-machine-learning 节点添加所需的库,以下 Dockerfile 将扩展之前构建的容器。
FROM testing:node-red-build
USER root
RUN apt-get install -y python3-pip python3-numpy python3-pandas
RUN pip install scikit-learn tensorflow
USER node-red
这可以通过以下方式构建:
docker build . -t custom-node-red
另一个选择是编辑 Dockerfile.debian
以预先构建依赖项。您可以将包添加到 apt-get
行,然后添加一个 pip
以安装未直接打包到 Debian 中的原生 Python 模块。
...
COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
# Chown, install devtools & Clean up
RUN chown -R node-red:root /usr/src/node-red && \
apt-get update && apt-get install -y build-essential python-dev python3 \
python3-pip python3-numpy python3-pandas && \
pip install scikit-learn tensorflow && \
rm -r /tmp/*
USER node-red
...
在这种情况下,您只需重新运行 docker-debian.sh
脚本。
版权所有 OpenJS 基金会和 Node-RED 贡献者。保留所有权利。OpenJS 基金会已注册商标并使用商标。有关 OpenJS 基金会商标列表,请参阅我们的商标政策和商标列表。未在OpenJS 基金会商标列表中指明的商标和徽标是其各自持有者的商标™或注册®商标。使用它们并不意味着与它们有任何关联或得到它们的认可。
OpenJS 基金会 | 使用条款 | 隐私政策 | OpenJS 基金会章程 | 商标政策 | 商标列表 | Cookie 政策