]> git.openstreetmap.org Git - rails.git/blobdiff - Dockerfile
Merge remote-tracking branch 'upstream/pull/4055'
[rails.git] / Dockerfile
index 7d5d4982cd3d3d3d228f31d6141bc4751a15b8ef..f3c56e1615c922c53a91dd5aaae86ea9a51c0d64 100644 (file)
@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
 
 ENV DEBIAN_FRONTEND=noninteractive
 
 
 ENV DEBIAN_FRONTEND=noninteractive
 
@@ -9,7 +9,7 @@ RUN apt-get update \
       curl \
       default-jre-headless \
       file \
       curl \
       default-jre-headless \
       file \
-      firefox-geckodriver \
+      gpg-agent \
       libarchive-dev \
       libffi-dev \
       libgd-dev \
       libarchive-dev \
       libffi-dev \
       libgd-dev \
@@ -19,13 +19,21 @@ RUN apt-get update \
       libxml2-dev \
       libxslt1-dev \
       locales \
       libxml2-dev \
       libxslt1-dev \
       locales \
-      nodejs \
       postgresql-client \
       postgresql-client \
-      ruby2.7 \
-      ruby2.7-dev \
+      ruby \
+      ruby-dev \
+      ruby-bundler \
+      software-properties-common \
       tzdata \
       unzip \
       tzdata \
       unzip \
-      yarnpkg \
+      nodejs \
+      npm \
+ && npm install --global yarn \
+ # We can't use snap packages for firefox inside a container, so we need to get firefox+geckodriver elsewhere
+ && add-apt-repository -y ppa:mozillateam/ppa \
+ && echo "Package: *\nPin: release o=LP-PPA-mozillateam\nPin-Priority: 1001" > /etc/apt/preferences.d/mozilla-firefox \
+ && apt-get install --no-install-recommends -y \
+      firefox-geckodriver \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*
 
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*
 
@@ -41,10 +49,9 @@ WORKDIR /app
 
 # Install Ruby packages
 ADD Gemfile Gemfile.lock /app/
 
 # Install Ruby packages
 ADD Gemfile Gemfile.lock /app/
-RUN gem install bundler \
- && bundle install
+RUN bundle install
 
 
-# Install NodeJS packages using yarnpkg
-# `bundle exec rails yarn:install` will not work
+# Install NodeJS packages using yarn
 ADD package.json yarn.lock /app/
 ADD package.json yarn.lock /app/
-RUN yarnpkg --ignore-engines install
+ADD bin/yarn /app/bin/
+RUN bundle exec bin/yarn install