Introduce docker-compose config for development
This commit is contained in:
parent
e6db73f8d3
commit
c514fd62fe
7 changed files with 115 additions and 0 deletions
1
.dockerignore
Normal file
1
.dockerignore
Normal file
|
@ -0,0 +1 @@
|
|||
docker-db-data
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -18,3 +18,6 @@ public/attachments
|
|||
public/export
|
||||
storage
|
||||
tmp
|
||||
|
||||
# docker-compose database directory
|
||||
docker-db-data
|
||||
|
|
52
Dockerfile
Normal file
52
Dockerfile
Normal file
|
@ -0,0 +1,52 @@
|
|||
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
|
20
config/docker.database.yml
Normal file
20
config/docker.database.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
# 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
|
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
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
|
4
docker/postgres/Dockerfile
Normal file
4
docker/postgres/Dockerfile
Normal file
|
@ -0,0 +1,4 @@
|
|||
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/
|
11
docker/postgres/openstreetmap-postgres-init.sh
Executable file
11
docker/postgres/openstreetmap-postgres-init.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/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
|
Loading…
Add table
Add a link
Reference in a new issue