55 lines
1.9 KiB
Docker
55 lines
1.9 KiB
Docker
# This Dockerfile for a Ruby application was generated by gcloud.
|
|
|
|
# The base Dockerfile installs:
|
|
# * A number of packages needed by the Ruby runtime and by gems
|
|
# commonly used in Ruby web apps (such as libsqlite3)
|
|
# * A recent version of NodeJS
|
|
# * A recent version of the standard Ruby runtime to use by default
|
|
# * The bundler gem
|
|
FROM gcr.io/google-appengine/ruby:{base_image_tag}
|
|
|
|
# If your application requires a specific ruby version (compatible with rbenv),
|
|
# set it here. Leave blank to use the currently recommended default.
|
|
ARG REQUESTED_RUBY_VERSION="{ruby_version}"
|
|
|
|
# Install any requested ruby if not already preinstalled by the base image.
|
|
# Tries installing a prebuilt package first, then falls back to a source build.
|
|
RUN if test -n "$REQUESTED_RUBY_VERSION" -a \
|
|
! -x /rbenv/versions/$REQUESTED_RUBY_VERSION/bin/ruby; then \
|
|
(apt-get update -y \
|
|
&& apt-get install -y -q gcp-ruby-$REQUESTED_RUBY_VERSION) \
|
|
|| (cd /rbenv/plugins/ruby-build \
|
|
&& git pull \
|
|
&& rbenv install -s $REQUESTED_RUBY_VERSION) \
|
|
&& rbenv global $REQUESTED_RUBY_VERSION \
|
|
&& gem install -q --no-rdoc --no-ri bundler --version $BUNDLER_VERSION \
|
|
&& apt-get clean \
|
|
&& rm -f /var/lib/apt/lists/*_*; \
|
|
fi
|
|
ENV RBENV_VERSION=${{REQUESTED_RUBY_VERSION:-$RBENV_VERSION}}
|
|
|
|
# Copy the application files.
|
|
COPY . /app/
|
|
|
|
# Install required gems if Gemfile.lock is present.
|
|
RUN if test -f Gemfile.lock; then \
|
|
bundle install --deployment --without="development test" \
|
|
&& rbenv rehash; \
|
|
fi
|
|
|
|
# Temporary. Will be moved to base image later.
|
|
ENV RACK_ENV=production \
|
|
RAILS_ENV=production \
|
|
RAILS_SERVE_STATIC_FILES=true
|
|
|
|
# Run asset pipeline if we're in a Rails app.
|
|
RUN if test -d app/assets -a -f config/application.rb; then \
|
|
bundle exec rake assets:precompile || true; \
|
|
fi
|
|
|
|
# BUG: Reset entrypoint to override base image.
|
|
ENTRYPOINT []
|
|
|
|
# Start application on port $PORT.
|
|
CMD {entrypoint}
|