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"]
The WORKDIR instruction will create a new /pm folder in the container and set this folder as the working directory for the next COPY and CMD commands, see: docs.docker.com/engine/reference/builder
In the 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.