From c780c5c08b31f24d0d9cbde594800adbbe5b9ab4 Mon Sep 17 00:00:00 2001 From: Chang-Woo Rhee Date: Mon, 5 Feb 2024 15:53:14 -0800 Subject: [PATCH] Revert new Dockerfile Signed-off-by: Chang-Woo Rhee --- .../rails/README.md | 76 ++++--------------- 1 file changed, 15 insertions(+), 61 deletions(-) diff --git a/official-documentation-samples/rails/README.md b/official-documentation-samples/rails/README.md index 7a32829..4bc7e13 100644 --- a/official-documentation-samples/rails/README.md +++ b/official-documentation-samples/rails/README.md @@ -10,68 +10,22 @@ Docker container containing its dependencies. Defining dependencies is done usin a file called `Dockerfile`. To begin with, the Dockerfile consists of: ```dockerfile -# syntax = docker/dockerfile:1 - -# Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile -ARG RUBY_VERSION=3.1.4 -FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base - -# Rails app lives here -WORKDIR /rails - -# Set production environment -#ENV RAILS_ENV="production" \ -# BUNDLE_DEPLOYMENT="1" \ -# BUNDLE_PATH="/usr/local/bundle" \ -# BUNDLE_WITHOUT="development" - - -# Throw-away build stage to reduce size of final image -FROM base as build - -# Install packages needed to build gems -RUN apt-get update -qq && \ - apt-get install --no-install-recommends -y build-essential git libpq-dev libvips pkg-config - -# Install application gems -COPY Gemfile Gemfile.lock ./ -RUN bundle install && \ - rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git && \ - bundle exec bootsnap precompile --gemfile - -# Copy application code -COPY . . - -# Precompile bootsnap code for faster boot times -RUN bundle exec bootsnap precompile app/ lib/ - -# Precompiling assets for production without requiring secret RAILS_MASTER_KEY -RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile - - -# Final stage for app image -FROM base - -# Install packages needed for deployment -RUN apt-get update -qq && \ - apt-get install --no-install-recommends -y curl libvips postgresql-client && \ - rm -rf /var/lib/apt/lists /var/cache/apt/archives - -# Copy built artifacts: gems, application -COPY --from=build /usr/local/bundle /usr/local/bundle -COPY --from=build /rails /rails - -# Run and own only the runtime files as a non-root user for security -RUN useradd rails --create-home --shell /bin/bash && \ - chown -R rails:rails db log storage tmp -USER rails:rails - -# Entrypoint prepares the database. -ENTRYPOINT ["/rails/bin/docker-entrypoint"] - -# Start the server by default, this can be overwritten at runtime +# syntax=docker/dockerfile:1 +FROM ruby:3.1 +RUN apt-get update -qq && apt-get install -y nodejs postgresql-client +WORKDIR /myapp +COPY Gemfile /myapp/Gemfile +COPY Gemfile.lock /myapp/Gemfile.lock +RUN bundle install + +# Add a script to be executed every time the container starts. +COPY entrypoint.sh /usr/bin/ +RUN chmod +x /usr/bin/entrypoint.sh +ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 -CMD ["./bin/rails", "server"] + +# Configure the main process to run when running the image +CMD ["rails", "server", "-b", "0.0.0.0"] ``` That'll put your application code inside an image that builds a container