FROM ruby:2.7.1-buster RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \ apt-get update && apt-get dist-upgrade -y && \ apt-get install -y \ nodejs \ yarn \ nginx && \ apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* RUN gem update --system && gem install bundler # Install nginx config files RUN rm /etc/nginx/sites-enabled/default ADD docker/nginx_server.conf /etc/nginx/sites-enabled/parsley.conf # Add scripts ADD docker/bin/* /usr/local/bin/ RUN chmod +x /usr/local/bin/entrypoint.sh /usr/local/bin/nginx_service.sh /usr/local/bin/rails_service.sh # Set Default RAILS_ENV ENV RAILS_ENV docker # Setup directory and install gems RUN mkdir -p /parsley WORKDIR /parsley COPY Gemfile* ./ RUN bundle install COPY package.json yarn.lock ./ RUN yarn install --production=true --frozen-lockfile COPY . . # Compile assets RUN bundle exec rails webpacker:clobber webpacker:compile ENV PORT=80 EXPOSE 80 ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]