When running docker-compose
to launch my app, I'm getting a npm ERR! missing script: start
despite having a start script specified.
package.json is
{
"name": "myapp",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.17.1",
"cookie-parser": "~1.4.3",
"debug": "~2.6.3",
"ejs": "~2.5.6",
"express": "~4.15.2",
"mongoose": "^4.11.1",
"morgan": "~1.8.1",
"serve-favicon": "~2.4.2"
}
}
and docker-compose.yml is
version: "2"
services:
web:
build: .
volumes:
- ./:/app
ports:
- "3500:3500"
2 things are not making sense to me:
- Launching the app with its Dockerfile works: if the missing start script really was the problem, shouldn't this fail as well?
- package.json does have a start script as you can see above
Not sure if needed but the Dockerfile is
FROM node:argon
RUN mkdir /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3500
ENV PORT 3500
CMD ["npm", "start"]
EDIT: I'm using docker run -p 3500:3500 app
and docker-compose up
I'm new to this so may be missing something but am a bit stuck now.
docker-compose up --build
?