Joey Hipolito
Joey Hipolito

Reputation: 3166

Docker cannot run on build when running container with a different user

I don't know the specifics why the node application does not run. Basically I added a dockerfile in a nodejs app, and here is my Dockerfile

 FROM node:0.10-onbuild
 RUN mv /usr/src/app /ghost && useradd ghost --home /ghost && \
 cd /ghost
 ENV NODE_ENV production
 VOLUME ["/ghost/content"]
 WORKDIR /ghost
 EXPOSE 2368
 CMD ["bash", "start.bash"]

Where start.bash looks like this:

 #!/bin/bash

 GHOST="/ghost"
 chown -R ghost:ghost /ghost
 su ghost << EOF
 cd "$GHOST"
 NODE_ENV={$NODE_ENV:-production} npm start
 EOF

I usually run docker like so:

 docker run --name ghost -d -p 80:2368 user/ghost

With that I cannot see what is going on, and I decided to run it like this:

 docker run --name ghost -it -p 80:2368 user/ghost

And I got this output:

 > [email protected] start /ghost
 > node index

Seems, like starting, but as I check the status of the container docker ps -a , it is stopped.

Here is the repo for that but, the start.bash and dockerfile is different, because I haven't committed the latest, since both are not working:

JoeyHipolito/Ghost

Upvotes: 0

Views: 653

Answers (1)

Joey Hipolito
Joey Hipolito

Reputation: 3166

I manage to make it work, there is no error in the start bash file nor in the Dockerfile, it's just that I failed to build the image again.

With that said, you can checkout the final Dockerfile and start.bash file in my repository:

Ghost-blog__Docker (https://github.com/joeyhipolito/ghost)

At the time I write this answer, you can see it in the feature-branch, feature/dockerize.

Upvotes: 1

Related Questions