запустить npm начать как ENTRYPOINT из Dockerfile - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь создать dockerfile, в котором я только запускаю http-сервер. Мой dockerfile:

FROM ubuntu

RUN apt-get update
RUN apt-get install -y nodejs && apt-get install -y npm
COPY testing /testing
RUN cd testing
RUN npm install

ENTRYPOINT npm start

Здесь тестирование - это каталог проекта, который состоит из файла index.html и package.json.

Мой пакет. json is:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "http-server -a 0.0.0.0 -p 5500"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "concurrently": "^5.0.2",
    "http-server": "^0.12.1"
  }
}

На моей локальной машине сервер работает нормально. Я думаю, что команда cd testing не подходит и npm install не принимает файл package.json.

Изображение docker формируется под идентификатором изображения - 6260786586cc

, и ошибка при запуске изображения через команду:

1 Ответ

1 голос
/ 23 января 2020

Используйте WORKDIR инструкцию вместо cd.

WORKDIR testing

Каждая команда в Dockerfile выполняется во время сборки в отдельном контейнере. Поэтому запуск cd для изменения каталога во время сборки не работает.

...