X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c514fd62fe005d8d41a39e11508a3aee6ba9946d..eece15be74cf66b0c47be5b4f00e622184ea680d:/Dockerfile diff --git a/Dockerfile b/Dockerfile index 978834105..28c3a2ea6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,52 +1,59 @@ -FROM ruby:2.5 +FROM ubuntu:22.04 -# fixes dpkg man page softlink error while installing postgresql-client [source: https://stackoverflow.com/a/52655008/5350059] -RUN mkdir -p /usr/share/man/man1 && \ - mkdir -p /usr/share/man/man7 +ENV DEBIAN_FRONTEND=noninteractive -# npm is not available in Debian repo so following official instruction [source: https://github.com/nodesource/distributions/blob/master/README.md#debinstall] -RUN curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh && \ - bash nodesource_setup.sh && \ - rm -f nodesource_setup.sh - -# install packages -RUN apt-get update && \ - apt-get install --no-install-recommends -y \ +# Install system packages then clean up to minimize image size +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ build-essential \ curl \ - imagemagick \ + default-jre-headless \ + file \ + git-core \ + gpg-agent \ libarchive-dev \ libffi-dev \ - libmagickwand-dev \ + libgd-dev \ libpq-dev \ libsasl2-dev \ + libvips-dev \ libxml2-dev \ libxslt1-dev \ + libyaml-dev \ locales \ - nodejs \ - osmosis \ postgresql-client \ - ruby-dev && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# install npm packages -RUN npm install -g --unsafe-perm \ - phantomjs-prebuilt \ - yarn + ruby \ + ruby-dev \ + ruby-bundler \ + software-properties-common \ + tzdata \ + unzip \ + 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/* + +# 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 gems -ADD Gemfile* /app/ +# Install Ruby packages +ADD Gemfile Gemfile.lock /app/ RUN bundle install -# Setup local -RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen && \ - echo 'LANG="en_GB.UTF-8"'>/etc/default/locale && \ - dpkg-reconfigure --frontend=noninteractive locales && \ - update-locale LANG=en_GB.UTF-8 - -ENV LANG en_GB.UTF-8 +# Install NodeJS packages using yarn +ADD package.json yarn.lock /app/ +ADD bin/yarn /app/bin/ +RUN bundle exec bin/yarn install