У меня есть простой скрипт узла и определение составления Dockerfile и Docker:
app / package.json
{
"name": "puppeteer-scrape",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"nodemon": "^1.18.10",
},
"scripts": {
"start": "nodemon scrape.js"
}
}
app / Dockerfile
FROM node:8.11.3
RUN mkdir -p /app
WORKDIR /app
COPY ./package* /app/
RUN npm install
COPY ./*.js /app/
CMD ["npm", "start"]
docker-compose.yml
version: '3'
services:
app:
build: app
volumes:
- .:/app
Я хочу настроить docker-compose для повторного запуска сценария при изменении приложения.
Официальное руководство по созданию докера предлагает способ сделать это с помощью определения тома, как указано выше.Однако, когда я запускаю docker-compose up
, я получаю:
$ docker-compose up
app_1 | npm ERR! path /app/package.json
app_1 | npm ERR! code ENOENT
app_1 | npm ERR! errno -2
app_1 | npm ERR! syscall open
app_1 | npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
app_1 | npm ERR! enoent This is related to npm not being able to find a file.
app_1 | npm ERR! enoent
app_1 |
app_1 | npm ERR! A complete log of this run can be found in:
app_1 | npm ERR! /root/.npm/_logs/2019-03-02T23_54_53_560Z-debug.log
Кажется, что каталог приложения становится переполненным, или npm start
вызывается перед копированием приложения. Какой правильный способ настройкиэто?