如何在 Docker Compose 设置中将 InfluxDB 令牌传递到 Node-RED 节点?

问题描述 投票:0回答:1

我使用 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 docker-compose influxdb node-red
1个回答
0
投票

将其作为环境变量添加到

docker-compose.yml
,然后将
${env_var_name}
放入 Node-RED 流配置中。

有关如何在 Node-RED 中引用环境变量的更多详细信息,请访问:https://nodered.org/docs/user-guide/environment-variables

© www.soinside.com 2019 - 2024. All rights reserved.