-FROM ruby:2.5
+FROM ubuntu:20.04
-# Add yarn apt repository
-# https://classic.yarnpkg.com/en/docs/install#debian-stable
-RUN 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
+ENV DEBIAN_FRONTEND=noninteractive
-# Install system packages
-RUN apt-get update && \
- apt-get install --no-install-recommends -y \
+# Install system packages then clean up to minimize image size
+RUN apt-get update \
+ && apt-get install --no-install-recommends -y \
build-essential \
- imagemagick \
+ curl \
+ default-jre-headless \
+ file \
+ firefox-geckodriver \
libarchive-dev \
libffi-dev \
- libmagickwand-dev \
+ libgd-dev \
libpq-dev \
libsasl2-dev \
+ libvips-dev \
libxml2-dev \
libxslt1-dev \
locales \
nodejs \
- osmosis \
- phantomjs \
postgresql-client \
- ruby-dev \
- yarn && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
+ ruby2.7 \
+ ruby2.7-dev \
+ tzdata \
+ unzip \
+ yarnpkg \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+# Install compatible Osmosis to help users import sample data in a new instance
+RUN curl -OL https://github.com/openstreetmap/osmosis/releases/download/0.47.2/osmosis-0.47.2.tgz \
+ && tar -C /usr/local -xzf osmosis-0.47.2.tgz
+
+ENV DEBIAN_FRONTEND=dialog
# Setup app location
RUN mkdir -p /app
# Install Ruby packages
ADD Gemfile Gemfile.lock /app/
-RUN bundle install
+RUN gem install bundler \
+ && bundle install
-# Install NodeJS packages
+# Install NodeJS packages using yarnpkg
+# `bundle exec rails yarn:install` will not work
ADD package.json yarn.lock /app/
-RUN yarn
+RUN yarnpkg --ignore-engines install