How to copy files and execute pm2 with docker
I have the follow structure
[vagrantpackage.json yarn.lock client favicon.ico Dockerfile ecosystem.config.js README.md]$ ls api
FROM keymetrics/pm2-docker-alpine RUN npm install pm2 -g ADD . . # COPY HOW CAN I SEE IF WAS COPY CMD ["pm2-docker", "ecosystem.config.js"]
So my question is.. how to run this image and keep runner with pm2 ?
docker run -d -p 3000:3000 --name backend backend:v3
[vagrant@localhost swarmbot]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f28aa7459527 backend:v3 "pm2-docker ecosys..." 10 minutes ago Exited (1) 9 minutes ago backend
Status Exited .. why?
You could have a look at the logs first... It might help you figure out what's the problem:
docker logs backend
You can try to use the following Dockerfile:
FROM keymetrics/pm2-docker-alpine RUN npm install pm2 -g WORKDIR /pm COPY . /pm/ CMD ["pm2-docker", "ecosystem.config.js"]
WORKDIR instruction will create a new
/pm folder in the container and set this folder as the working directory for the next
CMD commands, see: docs.docker.com/engine/reference/builder/#w..
CMD instruction, there is no need to specify the path to the
ecosystem.config.js file as it should be copied in the
/pm directory which is the working directory.
Give it a try.