diff --git a/Dockerfile b/Dockerfile index 2c5c3f3..03dfbcd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,28 @@ FROM ruby:2.7.8 -# Point to Debian archive repos instead of the dead ones - RUN apt-get update -qq && \ curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get install -y build-essential libpq-dev nodejs && \ + apt-get install -y build-essential libpq-dev nodejs curl gnupg && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ + apt-get update -qq && apt-get install -y yarn && \ useradd --user-group --create-home --shell /bin/false app ENV HOME=/home/app +WORKDIR $HOME/wedding USER app -COPY --chown=app:app Gemfile Gemfile.lock $HOME/wedding/ -WORKDIR $HOME/wedding +# Copy only Gemfiles first for caching +COPY --chown=app:app Gemfile Gemfile.lock ./ +RUN bundle install + +# Copy the rest of the app +COPY --chown=app:app . ./ + +# Run bundle again in case new gems are required (because of conditional Gemfile logic) +RUN bundle install + +# Compile assets (SCSS -> CSS) RUN bundle exec rake assets:precompile - CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] - -COPY --chown=app:app . $HOME/wedding/