X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c17cb84b46a22af319fb772ea4602fa1fc02ca5e..cfaae9eadd794d646950421c8d21a6fe356e727f:/Dockerfile diff --git a/Dockerfile b/Dockerfile index e50699ab9..1c5638275 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,53 @@ -FROM ruby:2.5 +FROM ubuntu:22.04 -# 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 \ +# Install system packages then clean up to minimize image size +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ build-essential \ - imagemagick \ + curl \ + 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 \ - default-jre-headless \ - phantomjs \ postgresql-client \ + ruby \ ruby-dev \ - yarn && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* + ruby-bundler \ + software-properties-common \ + tzdata \ + 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 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 -# 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 +ENV DEBIAN_FRONTEND=dialog # Setup app location RUN mkdir -p /app @@ -39,6 +57,7 @@ WORKDIR /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