我有一个简单的节点脚本,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"
}
}
应用程序/文档文件
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,以便在更改应用程序时重新运行脚本。
这个
official docker-compose tutorial
建议使用如上所述的体积定义来执行此操作。但是当我跑的时候
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
正在复制应用程序之前调用。正确的配置方法是什么?