Nodejs без сервера Docker изображение - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь настроить docker образ для своей локальной разработки без сервера, и у меня возникают проблемы с доступом к файлам с использованием томов.

Dockerfile

FROM node:8.10

ADD . /code
WORKDIR /code


RUN npm install -g serverless
RUN npm install serverless-offline

EXPOSE 3000

# COPY . /code

CMD ["serverless", "offline", "--host", "0.0.0.0", "--port", "5000"]

docker -compose-yml

version: "3"
services:
  serverless_proj_1:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:5000"
    volumes:
      - .:/code
      - /code/node_modules

Docker правильно прослушивает все мои серверные конечные точки:

enter image description here

Но когда я запускаю одну из конечных точек API от Почтальона, это ошибка, которую я получаю: enter image description here

  • docker контейнер exe c apps-services_serverless_proj_1_1 pwd возвращает / код
  • docker контейнер exe c apps-services_serverless_proj_1_1 ls -al возвращает мою кодовую базу
  • docker exe-контейнер c apps-services_serverless_proj_1_1 ls / code -al снова возвращает мою кодовую базу (обе команды иметь общее количество)
  • docker контейнер exe c apps-services_serverless_proj_1_1 ls / code / node_modules -al возвращает всю мою зависимость Encies (всего 3074)

1 Ответ

1 голос
/ 05 марта 2020

Я не вижу RUN npm install. так как вы помечаете заполнитель для node_modules, вам необходимо установить их внутри контейнера.

EDIT

Пожалуйста, попробуйте подключиться к вашему работающему docker контейнеру и заглянуть в папку node_modules. Просто дважды проверьте, что a) у вас есть один, b) он расположен там, где и должен быть, и c) он содержит все ожидаемые вами модули.

Вы можете сделать это, запустив docker container exec -it serverless_proj_1 /bin/bash, это должно поместите вас в каталог / code по умолчанию, затем просто запустите ls -al

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...