openstreetmap-website/Dockerfile
Andy Allan d6d16dedb9 Simplify ruby installations
Refs #4048

* We don't currently need a specific version suffix on the package names,
  since ubuntu only ships with one ruby version (and newer versions on
  e.g. 23.04 are fine).
* We don't need to explicitly install libruby, since it's pulled in by
  other packages as required.
* Ubuntu again ships a decent enough version of bundler for our needs,
  so we don't need to install it via rubygems.
2023-05-31 17:55:53 +01:00

58 lines
1.6 KiB
Docker

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
# 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 \
gpg-agent \
libarchive-dev \
libffi-dev \
libgd-dev \
libpq-dev \
libsasl2-dev \
libvips-dev \
libxml2-dev \
libxslt1-dev \
locales \
postgresql-client \
ruby \
ruby-dev \
ruby-bundler \
software-properties-common \
tzdata \
unzip \
&& curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \
&& add-apt-repository -y -U https://deb.nodesource.com/node_18.x \
&& apt-get install --no-install-recommends -y \
nodejs \
&& npm install --global yarn \
&& 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 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
ENV DEBIAN_FRONTEND=dialog
# Setup app location
RUN mkdir -p /app
WORKDIR /app
# Install Ruby packages
ADD Gemfile Gemfile.lock /app/
RUN bundle install
# Install NodeJS packages using yarn
ADD package.json yarn.lock /app/
ADD bin/yarn /app/bin/
RUN bundle exec bin/yarn install