-FROM ubuntu:20.04
+FROM debian:bookworm
ENV DEBIAN_FRONTEND=noninteractive
-# Install system packages
+# 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 \
- libxml2-dev \
- libxslt1-dev \
- locales \
- nodejs \
- postgresql-client \
- ruby2.7 \
- ruby2.7-dev \
- tzdata \
- unzip \
- yarnpkg \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-
-# 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
+ && 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 yarn globally
+RUN npm install --global yarn
ENV DEBIAN_FRONTEND=dialog
# Install Ruby packages
ADD Gemfile Gemfile.lock /app/
-RUN gem install bundler \
- && bundle install
+RUN bundle install
-# Install NodeJS packages
+# Install NodeJS packages using yarn
ADD package.json yarn.lock /app/
-RUN yarnpkg install
-
-# Create directories for traces and images
-RUN mkdir -pv /home/osm/traces /home/osm/images
+ADD bin/yarn /app/bin/
+RUN bundle exec bin/yarn install