【问题标题】:How To Pass MySQL Credentials To Node Red Running In Docker如何将 MySQL 凭证传递给在 Docker 中运行的 Node Red
【发布时间】:2022-11-25 02:33:16
【问题描述】:

我有一个 DockerFile ..

FROM nodered/node-red
COPY package.json .
COPY --from=golang  /go/src/app  /usr/app/
USER root
RUN npm install --unsafe-perm --no-update-notifier --no-fund --only=production
RUN npm install node-red-contrib-speedtest
RUN npm install node-red-node-mysql

ADD settings.js /data/settings.js
ADD flows_cred.json /data/flows_cred.json
ADD flows.json /data/flows.json

这工作正常并创建了几个流程。 MySQL节点部分搭建完成,但缺少用户名和密码。

docker 镜像通过 docker-compose 调用

有没有办法在 dockerfile 或 docker-compose 阶段传递凭据?

查看 flows.json 文件我可以看到定义..

{
    "id": "25d5a4648b3a030b",
    "type": "MySQLdatabase",
    "name": "XXXXXXXX",
    "host": "Database",
    "port": "3306",
    "db": "yyyyyy",
    "tz": "",
    "charset": "UTF8"
},

并希望我可以在这部分添加一个“用户”和“密码”,但这似乎不起作用。

【问题讨论】:

    标签: mysql docker docker-compose node-red


    【解决方案1】:

    您可以将 Node-RED 红色环境变量作为配置选项。

    https://nodered.org/docs/user-guide/environment-variables

    因此,如果您在 Node-RED 中打开流程并打开 mysql 配置对话框,您可以将用户名/密码字段替换为 ${USERNAME}${PASSWORD},然后在容器启动时将这些值作为环境变量传递给容器。

    https://docs.docker.com/compose/environment-variables/#pass-environment-variables-to-containers

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 1970-01-01
      • 2019-12-29
      • 2021-08-03
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多