Docker Container exits upon running

I am trying to run a webserver (right now still locally) out of a docker container. I am currently going step by step to understand the different parts.


FROM node:12.2.0-alpine as build
ENV environment development

COPY . /app
RUN cd /app/client && yarn && yarn build
RUN cd /app/server && yarn 

CMD ["sh", "-c","NODE_ENV=${environment}", "node", "server/server.js"]

I have the "sh", "-c" part in the CMD command due to the fact that without it I was getting this error:

docker: Error response from daemon: OCI runtime create failed:
container_linux.go:346: starting container process caused “exec:
“NODE_ENV=${environment}”: executable file not found in $PATH”:

Building the container:

Building the container works just fine with:

docker build -t auth_example .

It takes a little while since the build context is (even after excluding all the node_modules) roughly 37MB, but that’s okay.

Running the container:

Running the container and the app inside works like a charm if I do:

MyZSH: docker run -it -p 5000:5000 auth_example /bin/sh
/app # NODE_ENV=development node server/server.js

However, when running the container via the CMD command like this:

MyZSH: docker run -p 5000:5000 auth_example

Nothing happens, no errors, no nothing. The logs are empty and a docker ps -a reveals that the container was exited right upon start. I did some googling and tried different combinations of -t -i -d but that didn’t solve it either.

Can anybody shed some light on this or point me into the right direction?

Source: StackOverflow