Skip to content

Remove curl & Nano from standard conatiner builds #338

Open

Description

@hardillb

At the next major release (4.0.0) remove any unused packages from the base images

  • curl
  • nano

Check for any others.

Activity

  1. self-assigned this
    on Oct 10, 2022
  2. WeterPeter commented on Jan 4, 2024

    @WeterPeter

    Please do not remove curl, I have many automations using curl getting json date from websites and (more important for me) from internal components like my not well supported thermostat and more.

  3. hardillb commented on Apr 19, 2024

    @hardillb
    MemberAuthor

    Why can't you use the http-request node instead of shelling out to curl?

  4. WeterPeter commented on Apr 19, 2024

    @WeterPeter

    Why can't you use the http-request node instead of shelling out to curl?

    How to use http-request node doing this? :

    curl -f -k -H 'Accept: application/json' -H 'Authorization: Bearer [LONG TOKEN]' -X GET https://192.168.xx.xx/api/v1/production/inverters

  5. hardillb commented on Apr 19, 2024

    @hardillb
    MemberAuthor

    You can set headers on in the config for the http-request node or pass them in as msg.header

    And you can set the http-request node to not validate the server cerificate

  6. hardillb commented on Apr 19, 2024

    @hardillb
    MemberAuthor

    You may also need to tell the http-request not not to validate the the response headers if the device isn't following the spec, but that option has been included in the 3.1.x stream since it was a security update to NodeJS 18 iirc

  7. WeterPeter commented on Apr 20, 2024

    @WeterPeter

    Thanks but is goes beond me I am affraid.
    Maybe you could give me an example flow how to do this?

  8. zba commented on Jul 29, 2024

    @zba

    Please do not remove curl, I have many automations using curl getting json date from websites and (more important for me) from internal components like my not well supported thermostat and more.

    You can create simple Dockerfile which will install curl to your image:

    FROM nodered/node-red:latest
    RUN apk update && apk add curl
  9. Paraphraser commented on Jul 29, 2024

    @Paraphraser

    In my experience (with IOTstack on Raspberry Pis and Debian Proxmox guests - but YMMV), it needs at least:

    FROM nodered/node-red:latest
    USER root
    RUN apk add --no-cache curl
    USER node-red

    Why? You need to be root to run apk. The base image on DockerHub leaves the user set to "node-red" (Dockerfile line 85). You inherit that at the point of the FROM so you have to switch to root to run apk and then put it back again. Putting it back to "node-red" is particularly important if you also use the Dockerfile to install add-on nodes.

    The --no-cache flag implies an apk update and a corresponding cleanup. It's designed to minimise clutter and keep containers small. That said, it doesn't actually make a huge difference to container size (~2MB) so the traditional "update + add" is just as good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions