-FROM ubuntu:20.04
+FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
curl \
default-jre-headless \
file \
- firefox-geckodriver \
- imagemagick \
+ git-core \
+ gpg-agent \
libarchive-dev \
libffi-dev \
libgd-dev \
- libmagickwand-dev \
libpq-dev \
libsasl2-dev \
libvips-dev \
libxml2-dev \
libxslt1-dev \
+ libyaml-dev \
locales \
- nodejs \
postgresql-client \
- ruby2.7 \
- ruby2.7-dev \
+ ruby \
+ ruby-dev \
+ ruby-bundler \
+ software-properties-common \
tzdata \
- unzip \
- yarnpkg \
+ unzip
+
+# Install Node.js 18 and npm
+RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
+ && apt-get install -y nodejs
+
+# Install yarn globally
+RUN 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/*
# Install Ruby packages
ADD Gemfile Gemfile.lock /app/
-RUN gem install bundler \
- && bundle install
+RUN bundle install
-# Install NodeJS packages using yarnpkg
-# `bundle exec rake yarn:install` will not work
+# Install NodeJS packages using yarn
ADD package.json yarn.lock /app/
-RUN yarnpkg --ignore-engines install
+ADD bin/yarn /app/bin/
+RUN bundle exec bin/yarn install