Hi, everyone. I have some problems with my container.
I have followed the step with Cannot seem to start Node-RED Docker custom container . But in the last step, which he says "The package.json file didn't have "node-red" as a dependency and therefore npm wasn't installing the package.". I didn't know how to add "node-red" into the package.json. Actually, I have add once but it doesn't work. The package.json is below.
package.json
{
"name": "node-red-project",
"description": "A Node-RED Project",
"version": "0.0.1",
"private": true,
"dependencies": {
"node-red": "1.2.6",
"node-red-contrib-buffer-array": "~1.1.0",
"node-red-contrib-counter": "~0.1.6",
"node-red-contrib-modbus": "~5.13.3",
"node-red-contrib-opc-da": "~1.0.3",
"node-red-contrib-opcda-client": "0.0.5",
"node-red-contrib-opcua": "~0.2.89",
"node-red-contrib-re-postgres": "~0.2.2",
"node-red-contrib-redis": "~1.3.7",
"node-red-dashboard": "~2.25.0",
"node-red-node-mysql": "~0.1.1",
"node-red-node-random": "~0.2.0",
"node-red-node-serialport": "~0.11.1"
}
}
Dockerfile
FROM nodered/node-red:latest
# Copy package.json to the WORKDIR so npm builds all
# of your added nodes modules for Node-RED
COPY package.json /data/
RUN npm install --only=production
# Copy _your_ Node-RED project files into place
# NOTE: This will only work if you DO NOT later mount /data as an external volume.
# If you need to use an external volume for persistence then
# copy your settings and flows files to that volume instead.
COPY settings.js /data/settings.js
COPY flows_nodered.json /data/flows.json
# User configuration directory volume
VOLUME ["/data"]
EXPOSE 1880
CMD ["npm", "start"]
After I build the image and run the image. The response is the nodes are missing. That's means the node_module doesn't work with npm install
.
Response
> node-red-docker@1.2.6 start /usr/src/node-red
> node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data" "npm" "start"
18 Jan 07:55:31 - [info]
Welcome to Node-RED
===================
18 Jan 07:55:32 - [info] Node-RED version: v1.2.6
18 Jan 07:55:32 - [info] Node.js version: v10.23.0
18 Jan 07:55:32 - [info] Linux 4.15.0-76-generic x64 LE
18 Jan 07:55:32 - [info] Loading palette nodes
18 Jan 07:55:34 - [info] Settings file : /data/settings.js
18 Jan 07:55:34 - [info] Context store : 'default' [module=memory]
18 Jan 07:55:34 - [info] User directory : /data
18 Jan 07:55:34 - [warn] Projects disabled : editorTheme.projects.enabled=false
18 Jan 07:55:34 - [info] Flows file : /data/flows.json
18 Jan 07:55:34 - [info] Server now running at http://127.0.0.1:1880/
18 Jan 07:55:34 - [warn]
---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.
If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.
You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------
18 Jan 07:55:34 - [info] Waiting for missing types to be registered:
18 Jan 07:55:34 - [info] - modbus-client
18 Jan 07:55:34 - [info] - OpcUa-Endpoint
18 Jan 07:55:34 - [info] - redis-config
18 Jan 07:55:34 - [info] - ui_tab
18 Jan 07:55:34 - [info] - ui_base
18 Jan 07:55:34 - [info] - ui_group
18 Jan 07:55:34 - [info] - MySQLdatabase
18 Jan 07:55:34 - [info] - postgresdb
18 Jan 07:55:34 - [info] - modbus-read
18 Jan 07:55:34 - [info] - modbus-flex-write
18 Jan 07:55:34 - [info] - random
18 Jan 07:55:34 - [info] - OpcUa-Item
18 Jan 07:55:34 - [info] - OpcUa-Client
18 Jan 07:55:34 - [info] - redis-in
18 Jan 07:55:34 - [info] - redis-out
18 Jan 07:55:34 - [info] - ui_switch
18 Jan 07:55:34 - [info] - ui_text_input
18 Jan 07:55:34 - [info] - ui_gauge
18 Jan 07:55:34 - [info] - modbus-flex-getter
18 Jan 07:55:34 - [info] - OpcUa-Browser
18 Jan 07:55:34 - [info] - OpcUa-Server
18 Jan 07:55:34 - [info] - ui_template
18 Jan 07:55:34 - [info] - modbus-response
18 Jan 07:55:34 - [info] - modbus-server
18 Jan 07:55:34 - [info] - mysql
18 Jan 07:55:34 - [info] - postgres
18 Jan 07:55:34 - [info] - redis-command
18 Jan 07:55:34 - [info] - redis-lua-script
18 Jan 07:55:34 - [info] - ui_chart
18 Jan 07:55:34 - [info] - ui_audio
18 Jan 07:55:34 - [info] - ui_toast
18 Jan 07:55:34 - [info] - ui_text
18 Jan 07:55:34 - [info] - ui_colour_picker
18 Jan 07:55:34 - [info] - ui_date_picker
18 Jan 07:55:34 - [info] - ui_numeric
18 Jan 07:55:34 - [info] - ui_slider
18 Jan 07:55:34 - [info] - ui_button
So, how can I add the "node-red" into package.json or how to fix the package.json. Hoping guys can help me to build it successfully. Thanks a lot.