[ruby-on-rails] Suggest to generate Dockerfile for Ruby on Rails stub server
Created by: ledsun
Description
I suggest generating Dockerfile with Ruby on Rails stub server to be able to start server with short commands:
docker build -t temp .
docker run -it --rm -p 3000:3000 temp
I think it Dockerfile and docker-entrypoint.sh are necessaary for this purpose.
Dockerfile:
FROM ruby:2.5-alpine
ENV BUILD_PACKAGES="curl-dev ruby-dev build-base" \
DEV_PACKAGES="zlib-dev libxml2-dev libxslt-dev tzdata yaml-dev sqlite-dev" \
RUBY_PACKAGES="ruby-json yaml nodejs"
RUN apk update && \
apk upgrade && \
apk add --no-cache --update\
$BUILD_PACKAGES \
$DEV_PACKAGES \
$RUBY_PACKAGES && \
mkdir -p /usr/src/myapp
WORKDIR /usr/src/myapp
COPY Gemfile ./
RUN gem install bundler
RUN bundle config build.nokogiri --use-system-libraries && \
bundle install --jobs=4 --retry=10 --clean
COPY . ./
RUN chmod +x bin/rails
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["bin/rails", "s", "-b", "0.0.0.0"]
Note: In this example only SQLite is considered
docker-entrypoint.sh:
#!/bin/sh
set -e
if [ "$1" = 'bin/rails' ] && [ "$2" = 's' ]; then
rm -f /myapp/tmp/pids/server.pid
bin/rails db:migrate
fi
exec "$@"