]> git.openstreetmap.org Git - rails.git/blobdiff - Dockerfile
Merge remote-tracking branch 'upstream/pull/3251'
[rails.git] / Dockerfile
index e387d11cbeb36c0c510be2d6dd3a529dfcc1d400..e8ff013870493ccee62d27b8730a8f5102707e18 100644 (file)
@@ -1,17 +1,19 @@
-FROM ruby:2.7
+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 \
+      curl \
+      default-jre-headless \
+      file \
+      firefox-geckodriver \
       imagemagick \
       libarchive-dev \
       libffi-dev \
+      libgd-dev \
       libmagickwand-dev \
       libpq-dev \
       libsasl2-dev \
@@ -19,17 +21,20 @@ RUN apt-get update && \
       libxslt1-dev \
       locales \
       nodejs \
-      default-jre-headless \
-      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
 
-# Install current Osmosis
-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
@@ -37,8 +42,10 @@ WORKDIR /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 rake yarn:install` will not work
 ADD package.json yarn.lock /app/
-RUN yarn
+RUN yarnpkg install