После некоторых исследований я хотел бы предложить простой ответ на мой вопрос.
Плюсы:
- Легкий
- Работает без клонирования официального изображения
- Не требует перестроения при изменении зависимостей
Минусы:
- Мне не нравится самая последняя строка моей точки входа. sh (поскольку мне пришлось скопировать его из официального образа)
Изменено docker -compose.yml:
version: '2'
services:
nodered:
image: nodered/node-red
user: root:root # necessary, otherwise we get 'access denied'
entrypoint: /data/entrypoint.sh
environment:
TZ: Europe/Amsterdam
ports:
- "1880:1880"
volumes:
- ./data:/data
/ data / entrypoint. sh file:
#!/bin/sh
DIR=`pwd`
cd /data
npm install
cd "$DIR"
npm start -- --userDir /data
Ради простоты npm install
запускается при каждом запуске, так как я понял, что это занимает почти ничего (время), и это очень полезно, если мне нужно изменить пакет. json on- муха. Очень просто заставить его запускаться только один раз, touch
-ing-файл и затем проверяя наличие файла.