安装私有节点#
您可以在不发布到 npm 的情况下构建自己的节点并将其安装到 n8n 实例中。这对于仅为公司内部使用而创建的节点非常有用。
在 Docker n8n 实例中安装您的节点#
如果您使用 Docker 运行 n8n,需要创建一个包含已安装节点的 n8n Docker 镜像。
-
创建 Dockerfile 并从 此 Dockerfile 复制代码。
您的 Dockerfile 应如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
FROM node:16-alpine ARG N8N_VERSION RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!" ; exit 1; fi # 更新所有内容并安装所需依赖 RUN apk add --update graphicsmagick tzdata git tini su-exec # 设置自定义用户以避免 n8n 以 root 身份运行 USER root # 安装 n8n 及其构建所需的包 RUN apk --update add --virtual build-dependencies python3 build-base ca-certificates && \ npm config set python "$(which python3)" && \ npm_config_user=root npm install -g full-icu n8n@${N8N_VERSION} && \ apk del build-dependencies \ && rm -rf /root /tmp/* /var/cache/apk/* && mkdir /root; # 安装字体 RUN apk --no-cache add --virtual fonts msttcorefonts-installer fontconfig && \ update-ms-fonts && \ fc-cache -f && \ apk del fonts && \ find /usr/share/fonts/truetype/msttcorefonts/ -type l -exec unlink {} \; \ && rm -rf /root /tmp/* /var/cache/apk/* && mkdir /root ENV NODE_ICU_DATA /usr/local/lib/node_modules/full-icu WORKDIR /data COPY docker-entrypoint.sh /docker-entrypoint.sh ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] EXPOSE 5678/tcp
-
编译您的自定义节点代码(如果使用节点启动器,则运行
npm run build
)。将 dist 文件夹中的 node 和 credential 文件夹复制到容器的~/.n8n/custom/
目录中,使其对 Docker 可用。 -
下载 docker-entrypoint.sh 文件,并将其与 Dockerfile 放在同一目录下。
-
构建您的 Docker 镜像:
1 2 3
# 将 <n8n-version-number> 替换为 n8n 发布版本号 # 例如:N8N_VERSION=0.177.0 docker build --build-arg N8N_VERSION=<n8n-version-number> --tag=customizedn8n .
现在您可以在 Docker 中使用您的节点了。
在全局安装的 n8n 实例中安装您的节点#
如果您已全局安装 n8n,请确保将您的节点安装在 n8n 内部。n8n 会自动发现并加载该模块。