--- /dev/null
+docker-db-data
public/export
storage
tmp
+
+# docker-compose database directory
+docker-db-data
--- /dev/null
+FROM ruby:2.5
+
+# 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
+
+# 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 \
+ build-essential \
+ curl \
+ imagemagick \
+ libarchive-dev \
+ libffi-dev \
+ libmagickwand-dev \
+ libpq-dev \
+ libsasl2-dev \
+ libxml2-dev \
+ libxslt1-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
+
+# Setup app location
+RUN mkdir -p /app
+WORKDIR /app
+
+# Install gems
+ADD Gemfile* /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
--- /dev/null
+# This configuration is tailored for use with docker-compose. See DOCKER.md for more information.
+
+development:
+ adapter: postgresql
+ database: openstreetmap
+ username: openstreetmap
+ password: openstreetmap
+ host: db
+ encoding: utf8
+
+# Warning: The database defined as 'test' will be erased and
+# re-generated from your development database when you run 'rake'.
+# Do not set this db to the same as development or production.
+test:
+ adapter: postgresql
+ database: osm_test
+ username: postgres
+ password:
+ host: db
+ encoding: utf8
--- /dev/null
+version: "3"
+
+services:
+ web:
+ build:
+ context: .
+ volumes:
+ - .:/app
+ ports:
+ - "3000:3000"
+ command: bundle exec rails s -p 3000 -b '0.0.0.0'
+ depends_on:
+ - db
+
+ db:
+ build:
+ context: .
+ dockerfile: docker/postgres/Dockerfile
+ ports:
+ - "54321:5432"
+ environment:
+ POSTGRES_DB: openstreetmap
+ volumes:
+ - ./docker-db-data:/var/lib/postgresql/data
--- /dev/null
+FROM postgres:11
+
+# Add db init script to install OSM-specific Postgres functions/extensions.
+ADD docker/postgres/openstreetmap-postgres-init.sh /docker-entrypoint-initdb.d/
--- /dev/null
+#!/bin/bash
+set -ex
+
+# Create 'openstreetmap' user
+psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" <<-EOSQL
+ CREATE USER openstreetmap PASSWORD 'openstreetmap';
+ GRANT ALL PRIVILEGES ON DATABASE openstreetmap TO openstreetmap;
+EOSQL
+
+# Create btree_gist extensions
+psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -c "CREATE EXTENSION btree_gist" openstreetmap