我使用 Docker Compose 设置 Node-RED 和 InfluxDB,并且需要 Node-RED 与 InfluxDB 交互(使用依赖项 node-red-contrib-influxdb:0.6.1)。 InfluxDB 2.x 需要一个令牌进行授权,我不确定如何将此令牌传递给 Node-RED 节点。 Node-RED 是使用此处提供的自定义 Dockerfile 构建的:
# Use the Node-RED base image
FROM nodered/node-red:latest
USER root
# Update the package list and install pandas and requests
RUN apk add --no-cache py3-pandas py3-pip py3-requests
USER node-red
COPY flows.json /data
COPY package.json /data
# Navigate to /data directory and Install the package.json dependencies
WORKDIR /data
RUN npm install --unsafe-perm --no-update-notifier --no-fund --only=production
COPY . .
WORKDIR /usr/src/node-red
EXPOSE 1880
目前,当容器运行时,InfluxDB节点不包含令牌,因此是未授权的。
我了解到node-red-contrib-influxdb不支持直接在InfluxDB节点配置中使用环境变量中的令牌。令牌需要硬编码到 Node-RED UI 中的 InfluxDB 节点配置中。然而,就我而言,这不是一个理想的解决方案。
此案例有任何解决方法或解决方案吗?
我尝试通过 Docker Compose 文件中定义的环境变量将 InfluxDB 令牌传递到 Node-RED 节点。
我期望 Node-RED 中的 InfluxDB 节点能够使用环境变量中指定的令牌对 InfluxDB 服务进行身份验证。
当容器启动并运行时,InfluxDB 节点不包含令牌,因此无权访问 InfluxDB 服务。我检查了日志,发现“未经授权”错误,表明令牌丢失了。
将其作为环境变量添加到
docker-compose.yml
,然后将 ${env_var_name}
放入 Node-RED 流配置中。
有关如何在 Node-RED 中引用环境变量的更多详细信息,请访问:https://nodered.org/docs/user-guide/environment-variables