# Node-red docker settings.js

**URL:** <https://discourse.nodered.org/t/node-red-docker-settings-js/26529>\
**Category:** General\
**Created:** [12 May 2020 14:26 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529 "2020-05-12T14:26:01Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![nheine](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nheine/32/21748_2.png) [@nheine](https://discourse.nodered.org/u/nheine)\
**Post date:** [12 May 2020 14:26 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/1 "2020-05-12T14:26:01Z")

</div>

Hi, I am using node-red in docker container. Starting it up with --settings argument to pass on a custom settings file.  
The container starts up fine but after a while it goes unhealthy and reports:

`internal/modules/cjs/loader.js:638 throw err; ^ Error: Cannot find module '/data/settings.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) at Function.Module._load (internal/modules/cjs/loader.js:562:25) at Module.require (internal/modules/cjs/loader.js:692:17) at require (internal/modules/cjs/helpers.js:25:18) at Object.<anonymous> (/healthcheck.js:3:16) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3)`

as I used --settings argument the settings.js file is not in the standard /data directory. However something seem to look for it still. Any ideas on how to run with custom settings.js and don't get this message?

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [12 May 2020 14:32 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/2 "2020-05-12T14:32:16Z")

</div>

Welcome.

Which container are you using, and where did you find the "--settings" argument ?

---

<div class="post-metadata">

**Author:** ![nheine](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nheine/32/21748_2.png) [@nheine](https://discourse.nodered.org/u/nheine)\
**Post date:** [12 May 2020 14:35 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/3 "2020-05-12T14:35:02Z")

</div>

container image: nodered/node-red:1.0.6  
the --settings argument as described here [https://nodered.org/docs/user-guide/runtime/settings-file](https://nodered.org/docs/user-guide/runtime/settings-file)

I think I have it sorted now though. I simply use a volume for /data and another for /data/settings.js

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [12 May 2020 14:59 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/4 "2020-05-12T14:59:20Z")

</div>

In order to help you understand what the problem was, so you don't hit it again, I presume you were using the --settings argument in the startup command for node-red in the container. If so and if you gave it a path to somewhere on the host file system then that wouldn't work as the container doesn't have direct access to the host file system. That is what Volumes are for, for mapping files/folders on the host file system into the container.

---

<div class="post-metadata">

**Author:** ![nheine](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nheine/32/21748_2.png) [@nheine](https://discourse.nodered.org/u/nheine)\
**Post date:** [12 May 2020 15:21 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/5 "2020-05-12T15:21:09Z")

</div>

that is understood. I had mapped the settings file to /etc/node-red-settings/settings.js into the docker container. It started up fine but however after a while I got the message that /data/settings.js is missing.

To me that sounds like something is still looking for /data/settings.js even though I gave another path for settings.js through --settings argument.

---

<div class="post-metadata">

**Author:** ![nheine](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nheine/32/21748_2.png) [@nheine](https://discourse.nodered.org/u/nheine)\
**Post date:** [12 May 2020 15:27 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/6 "2020-05-12T15:27:00Z")

</div>

the healthcheck.js does have hardcoded check for /data/settings.js

It is part of node-red docker release: [https://github.com/node-red/node-red-docker/blob/master/.docker/healthcheck.js](https://github.com/node-red/node-red-docker/blob/master/.docker/healthcheck.js)

---

<div class="post-metadata">

**Author:** ![timnis](https://avatars.discourse-cdn.com/v4/letter/t/8c91f0/32.png) [@timnis](https://discourse.nodered.org/u/timnis)\
**Post date:** [15 May 2020 14:14 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/7 "2020-05-15T14:14:55Z")

</div>

So can I define this to docker-compose.yml file as following

```auto
services:

  nodered:
    restart: always
    image: nodered/node-red:latest
    command:
      - "--settings /path/to/settings.js"
    ...

```

---

<div class="post-metadata">

**Author:** ![nheine](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nheine/32/21748_2.png) [@nheine](https://discourse.nodered.org/u/nheine)\
**Post date:** [15 May 2020 14:54 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/8 "2020-05-15T14:54:35Z")

</div>

it's possible to do it. It loads correct settings. However the healthcheck.js for docker does not like it. It looks for /data/settings.js if that file does not exist it reports unhealthy.

---

<div class="post-metadata">

**Author:** ![timnis](https://avatars.discourse-cdn.com/v4/letter/t/8c91f0/32.png) [@timnis](https://discourse.nodered.org/u/timnis)\
**Post date:** [16 May 2020 08:23 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/9 "2020-05-16T08:23:07Z")

</div>

Thanks. So it should be fixed somehow 🙂

I think it would be easy fixed with dockers environment variables, but never done PR 🤔

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [16 May 2020 14:40 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/10 "2020-05-16T14:40:07Z")

</div>

You can always ask it not to run the healthcheck

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [30 May 2020 14:40 UTC](https://discourse.nodered.org/t/node-red-docker-settings-js/26529/11 "2020-05-30T14:40:11Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
