npm установить пакет через работающий узел-контейнер - PullRequest
0 голосов
/ 20 января 2020

Я выполнил шаги в node.js документации для создания Dockerfile. Я пытаюсь запустить команду docker exec -it mynodeapp /bin/bash, чтобы go внутри контейнера и установить новый пакет через npm, но я получаю следующую ошибку

OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown

Любые идеи, что я ' я делаю неправильно?

для ref, вот как мой docker -композитный и dockerfile выглядит как

FROM node:latest

RUN mkdir /app
WORKDIR /app

RUN npm install -g nodemon

COPY package.json package.json
RUN npm install

COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]

и

version: '3'

services:
  nodejs:
    container_name: mynodeapp
    build: .
    command: nodemon --inspect server.js
    ports:
      - '5000:8080'
    volumes:
      - '.:/app'
    networks:
      - appnet
networks:
  appnet:
    driver: 'bridge'

1 Ответ

0 голосов
/ 20 января 2020

Изменить docker exec mynodeapp -it /bin/bash на docker exec -it mynodeapp /bin/sh

Согласно docker документации правильный синтаксис следующий:

docker exe c [ОПЦИИ] КОМАНДА КОНТЕЙНЕРА [ARG ...]

  • -i и -t - это опции
  • mynodeapp - CONTAINER
  • / bin / bash - это КОМАНДА внутри контейнера

И еще одна проблема заключается в том, что внутри контейнера нет bash оболочки, поэтому вы можете использовать sh shell.

...