-
Notifications
You must be signed in to change notification settings - Fork 908
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
152 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
* | ||
!Gemfile | ||
!Gemfile.lock | ||
!db/functions | ||
!db/docker_postgres.sh | ||
!lib/quad_tile |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Using Docker to run OpenStreetMap | ||
|
||
Using [Docker](https://www.docker.com/) will allow you to install the OpenStreetMap application and all its' dependencies in a container, almost with a single command. | ||
|
||
These instructions gloss over the precise details of the dependencies and their configuration but these can be found in full detail at [INSTALL.md](INSTALL.md). | ||
|
||
The first step is to fork/clone the repo to your local machine. Then run these commands: | ||
|
||
### App configuration | ||
|
||
``` | ||
cp config/example.application.yml config/application.yml | ||
``` | ||
|
||
### Database | ||
|
||
``` | ||
cp config/example.database.yml config/database.yml | ||
``` | ||
|
||
Set `username` to postgres and `host` to db leave the password blank | ||
|
||
### Installation | ||
|
||
In the root directory run: | ||
|
||
``` | ||
docker-compose up | ||
``` | ||
|
||
### Migrations | ||
|
||
``` | ||
docker-compose exec web bundle exec rake db:migrate | ||
``` | ||
|
||
Once these are complete you should be able to visit the app at http://localhost:3000 | ||
|
||
If localhost does not work, you can use the IP address of the docker-machine. | ||
|
||
### Tests | ||
|
||
``` | ||
docker-compose exec web bundle exec rake test:db | ||
``` | ||
|
||
### Bash | ||
|
||
If you want to get onto the web container and run specific commands you can fire up bash via: | ||
|
||
``` | ||
docker-compose exec web /bin/bash | ||
``` | ||
|
||
Similarly, if you want to get onto the db container use: | ||
|
||
``` | ||
docker-compose exec db /bin/bash | ||
``` | ||
|
||
### General Information | ||
|
||
The [docker-compose.yml](docker-compose.yml) specifies the configuration for the two web and db containers. For example port that the Postgres database is exposed on that you can point your local db admin tool at. | ||
|
||
Note that the [Dockerfile.postgres](Dockerfile.postgres) for the db container includes various build tools to run [db/docker_postgres.sh](db/docker_postgres.sh). This script installs extensions and functions required by the database and it is run automatically because it is specifically added to the location `docker-entrypoint-initdb.d` on the container. | ||
|
||
There is a [.dockerignore](.dockerignore) that ignores all files except those required to be added to the containers. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
FROM ruby:2.3-slim | ||
MAINTAINER OpenStreetMap | ||
ENV REFRESHED_AT 2016-09-15 | ||
|
||
# Install packages | ||
RUN apt-get update | ||
RUN apt-get install -y --no-install-recommends build-essential | ||
RUN apt-get install -y --no-install-recommends ruby-dev | ||
RUN apt-get install -y --no-install-recommends libxml2-dev | ||
RUN apt-get install -y --no-install-recommends libxslt1-dev | ||
RUN apt-get install -y --no-install-recommends libpq-dev | ||
RUN apt-get install -y --no-install-recommends libsasl2-dev | ||
RUN apt-get install -y --no-install-recommends imagemagick | ||
RUN apt-get install -y --no-install-recommends libmagickwand-dev | ||
RUN apt-get install -y --no-install-recommends nodejs | ||
RUN apt-get install -y --no-install-recommends file | ||
RUN apt-get install -y --no-install-recommends postgresql-client | ||
RUN apt-get install -y --no-install-recommends locales | ||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* | ||
|
||
# Setup app location | ||
RUN mkdir -p /app | ||
WORKDIR /app | ||
|
||
# Install gems | ||
ADD Gemfile /app/Gemfile | ||
ADD Gemfile.lock /app/Gemfile.lock | ||
RUN bundle install | ||
|
||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
FROM postgres:9.4 | ||
|
||
ADD db/docker_postgres.sh docker-entrypoint-initdb.d/docker_postgres.sh | ||
ADD db/functions/ db/functions/ | ||
ADD lib/quad_tile/ lib/quad_tile/ | ||
|
||
RUN apt-get update | ||
RUN apt-get install -y make \ | ||
postgresql-server-dev-all \ | ||
build-essential \ | ||
&& apt-get clean && rm -rf /var/lib/apt/lists/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#!/bin/bash | ||
set -e | ||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -c "CREATE EXTENSION btree_gist" openstreetmap | ||
make -C db/functions libpgosm.so | ||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '/db/functions/libpgosm', 'maptile_for_point' LANGUAGE C STRICT" openstreetmap | ||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '/db/functions/libpgosm', 'tile_for_point' LANGUAGE C STRICT" openstreetmap | ||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '/db/functions/libpgosm', 'xid_to_int4' LANGUAGE C STRICT" openstreetmap |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
version: '2' | ||
services: | ||
web: | ||
image: openstreetmap-website:v1 | ||
build: | ||
context: . | ||
dockerfile: Dockerfile | ||
volumes: | ||
- .:/app | ||
ports: | ||
- "3000:3000" | ||
command: bundle exec rails s -p 3000 -b '0.0.0.0' | ||
depends_on: | ||
- db | ||
db: | ||
image: openstreetmap-db:v1 | ||
build: | ||
context: . | ||
dockerfile: Dockerfile.postgres | ||
ports: | ||
- "5432:5432" | ||
environment: | ||
POSTGRES_DB: openstreetmap |