diff --git a/Dockerfile b/Dockerfile index afa1768c3..e1a85c226 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,17 @@ -FROM ruby:2.3.1-alpine +### +# Build with 'docker build -t standard_notes_web.img .' +# Run with 'docker run -d -p 127.0.0.1:3000:3000 --name standard_notes_web --restart always standard_notes.img' +# If you need shell access, run 'docker exec -it standard_notes_web /bin/sh' +# Access from http://localhost:3000/ +# Set up Nginx to terminate SSL with LetsEncrypt and proxy_pass to http://localhost:3000/ +### + +FROM ruby:alpine RUN apk add --update --no-cache \ alpine-sdk \ nodejs \ + nodejs-npm \ tzdata WORKDIR /app/ @@ -17,4 +26,10 @@ RUN npm install -g bower grunt RUN bundle exec rake bower:install -RUN grunt +RUN npm run build + +EXPOSE 3000 + +ENTRYPOINT [ "./docker/entrypoint" ] + +CMD [ "start" ] diff --git a/docker/entrypoint b/docker/entrypoint new file mode 100755 index 000000000..6b6ba9355 --- /dev/null +++ b/docker/entrypoint @@ -0,0 +1,18 @@ +#!/usr/bin/env sh +# $0 is a script name, +# $1, $2, $3 etc are passed arguments +# $1 is our command +CMD=$1 + +case "$CMD" in + 'start' ) + echo `pwd` + bundle exec rails s -b 0.0.0.0 + ;; + + * ) + # Run custom command. Thanks to this line we can still use + # "docker run our_image /bin/sh" and it will work + exec "$@" + ;; +esac