-FROM ruby:2.7
+FROM debian:bookworm
-# 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 \
- build-essential \
- imagemagick \
- libarchive-dev \
- libffi-dev \
- libmagickwand-dev \
- libpq-dev \
- libsasl2-dev \
- libxml2-dev \
- libxslt1-dev \
- locales \
- nodejs \
- default-jre-headless \
- phantomjs \
- postgresql-client \
- ruby-dev \
- yarn && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
+# 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 \
+ git-core \
+ gpg-agent \
+ libarchive-dev \
+ libffi-dev \
+ libgd-dev \
+ libpq-dev \
+ libsasl2-dev \
+ libvips-dev \
+ libxml2-dev \
+ libxslt1-dev \
+ libyaml-dev \
+ locales \
+ postgresql-client \
+ ruby-dev \
+ ruby-bundler \
+ tzdata \
+ unzip \
+ nodejs \
+ npm \
+ osmosis \
+ ca-certificates \
+ firefox-esr
-# 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
+# Install yarn globally
+RUN npm install --global yarn
+
+ENV DEBIAN_FRONTEND=dialog
# Setup app location
RUN mkdir -p /app
ADD Gemfile Gemfile.lock /app/
RUN bundle install
-# Install NodeJS packages
+# Install NodeJS packages using yarn
ADD package.json yarn.lock /app/
-RUN yarn
+ADD bin/yarn /app/bin/
+RUN bundle exec bin/yarn install