с ней ковыряюсь) так что не пинайте плиз особо))
хочу в контейнер установить supervisor...
делаю в package.json
"dependencies": {
"express": "^4.16.1",
"supervisor": "^0.9.1"
}
в Dockerfile делаю
CMD [ "supervisor", "server.js" ]
при сборке получаю ошибку
Step 4/7 : RUN npm install
---> Running in 4c128e59ad4a
npm WARN docker_web_app@1.0.0 No repository field.
npm WARN docker_web_app@1.0.0 No license field.
в результате всего этого хочу получить автоматический перезапуск ноды(???) в случае изменения кода)
что делаю не так?))
Ну, во-первых, чтобы использовать supervisor как команду, надо поставить его глобально. Но куда проще создать npm команду под это дело. Во-вторых, нужно прокинуть том (volume) к этому контейнеру, чтобы ты мог изменять локально и контейнер видел изменения.
хм.. я как раз и хотел уйти от глобальной установки)) думал зачем мне это если есть же контейнер..
Ну и, кстати, я не вижу тут какой-то ошибки. Если ты про npm WARN..., то это только из-за того, что ты внутри package.json поля не заполнил, необходимые пакету. Если хочешь, чтобы эта надпись исчезла, то либо добавь эти поля, либо удали их и добавь поле "private": true. И тогда предупреждение уйдет.
а supervisor обязательно должен глобально стоять? а то у меня получается винда + wsl2 внутри wsl2 куча контейнеров по работе.. шторм естественно тоже виндовый.. .npm запускается то с винды то с wsl2 образа)) в общем зоопарк какой то получился)
Не нужен он глобально. Ты его можешь просто поставить, как обычную зависимость, а затем прокинуть в поле scripts в package.json файле команду для его запуска. И потом эту команду вызывать через CMD в Dockerfile ... "scripts": { "command": "supervisor ....." } ... —— CMD npm run command
Обсуждают сегодня