【问题标题】:i created nodered application in docker , i tried rebuild docker because i need using other cli tools. e,g:aws cli我在 docker 中创建了 nodered 应用程序,我尝试重建 docker,因为我需要使用其他 cli 工具。例如:aws cli
【发布时间】:2021-03-25 10:53:04
【问题描述】:

我需要部署到 Fargate,但 nodered 重建将按照主机名创建 flow.json,这让我很难将旧配置加载到新 nodered。 但是现在,如果使用 docker run -h 是可行的,但在 fargate 中不起作用,我该怎么办?

当然,发布nodered docker版本解决了这个问题,但是我不知道如何调用cli工具,如果基于node-red,如何安装aws-cli2并在nodered仪表板中调用它?

FROM nodered/node-red:latest
#USER root
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
RUN unzip awscliv2.zip
RUN ./aws/install
CMD ["node-red"]

【问题讨论】:

  • 为什么要从头开始而不只是扩展官方的 Node-RED 映像?有关如何执行此操作的文档位于官方 git repo 中,如果您不想使用 Apline,甚至还包括基于 Debian 的映像的 Dockerfile。还要看node-red命令行参数,总可以传入流文件名
  • 是的,我知道,但是如何扩展以使用 aws cli?
  • 与处理任何其他 docker 文件一样,您使用 FROM 标头指向官方图像,然后添加要用于扩展的命令。
  • 好的,谢谢你的回复,我试过你的方法,对我来说很管用,但是安装cli工具需要root权限,我尝试使用USER root,但是在node-red用户之后安装不起作用调用它,它会显示/bin/bash: /usr/local/bin/aws: No such file or directory
  • Edit 显示所有新的Dockerfile 和完整错误的问题

标签: node.js docker node-red


【解决方案1】:

正确的 Dockerfile 应该是:

FROM nodered/node-red:latest
USER root
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
RUN unzip awscliv2.zip
RUN ./aws/install
RUN rm -rf ./aws
USER node-red

但问题是图像基于 Alpine Linux,它使用 musl 标准库而不是 glibc。并且 AWS 工具不会 work 使用此运行时。

最简单的解决方案是使用我在第一条评论中提到的基于 Debian 的构建。 docker 文件可以在here 找到,按照那里的说明使用docker-debian.sh,这将创建一个名为 testing:node-red-build 然后您可以将其用作我之前展示的 Dockerfile 的基础:

FROM testing:node-red-build
USER root
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
RUN unzip awscliv2.zip
RUN ./aws/install
RUN rm -rf ./aws
USER node-red

【讨论】:

  • 太好了,我照做了,但仪表板显示亚马逊配置是 NONE,发生了什么?
  • 关于如何在 Node-RED 容器中包含 AWS CLI 是一个完全独立的问题。提出一个新问题,详细描述您要达到的目标。
猜你喜欢
  • 2023-04-09
  • 2023-02-11
  • 1970-01-01
  • 2020-01-23
  • 2020-03-14
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
相关资源
最近更新 更多