kopia lustrzana https://github.com/kartoza/docker-osm
Updated readme and docker-compose. Latter now includes list of default env vars
rodzic
b50ef1fa59
commit
ac44243719
|
@ -15,6 +15,8 @@ db:
|
||||||
- USERNAME=docker
|
- USERNAME=docker
|
||||||
- PASS=docker
|
- PASS=docker
|
||||||
# - HSTORE=true
|
# - HSTORE=true
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
|
||||||
imposm:
|
imposm:
|
||||||
#image: kartoza/imposm
|
#image: kartoza/imposm
|
||||||
|
@ -29,8 +31,29 @@ imposm:
|
||||||
- PORT=5432
|
- PORT=5432
|
||||||
- HOST=db
|
- HOST=db
|
||||||
- DATEBASE=gis
|
- DATEBASE=gis
|
||||||
# in seconds
|
# seconds between 2 executions of the script
|
||||||
- TIME=120
|
- TIME=120
|
||||||
|
# folder for settings (with *.json and *.sql)
|
||||||
|
- SETTINGS = settings
|
||||||
|
# folder for caching
|
||||||
|
- CACHE = cache
|
||||||
|
# folder the OSM file
|
||||||
|
- BASE_PBF = base_pbf
|
||||||
|
# folder for diff which has been imported
|
||||||
|
- IMPORT_DONE = import_done
|
||||||
|
# folder for diff which hasn't been imported yet
|
||||||
|
- IMPORT_QUEUE = import_queue
|
||||||
|
# it can be 3857
|
||||||
|
- SRID = 4326
|
||||||
|
# see http://imposm.org/docs/imposm3/latest/tutorial.html#optimize
|
||||||
|
- OPTIMIZE = false
|
||||||
|
# see http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables
|
||||||
|
- DBSCHEMA_PRODUCTION = public
|
||||||
|
# http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables
|
||||||
|
- DBSCHEMA_IMPORT = import
|
||||||
|
# http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables
|
||||||
|
- DBSCHEMA_BACKUP = backup
|
||||||
|
|
||||||
|
|
||||||
osmupdate:
|
osmupdate:
|
||||||
#image: etrimaille/osmupdate
|
#image: etrimaille/osmupdate
|
||||||
|
@ -38,5 +61,19 @@ osmupdate:
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- storage
|
- storage
|
||||||
environment:
|
environment:
|
||||||
# in seconds
|
# These are all currently the defaults but listed here for your
|
||||||
- TIME=120
|
# convenience if you want to change them
|
||||||
|
# the maximum time range to assamble a cumulated changefile.
|
||||||
|
- MAX_DAYS = 100
|
||||||
|
# osmupdate uses a combination of minutely, hourly and daily changefiles. This value can be minute, hour, day or sporadic.
|
||||||
|
- DIFF = sporadic
|
||||||
|
# argument to determine the maximum number of parallely processed changefiles.
|
||||||
|
- MAX_MERGE = 7
|
||||||
|
# define level for gzip compression. values between 1 (low compression but fast) and 9 (high compression but slow)
|
||||||
|
- COMPRESSION_LEVEL = 1
|
||||||
|
# change the URL to use a custom URL to fetch regional file updates.
|
||||||
|
- BASE_URL = http://planet.openstreetmap.org/replication/
|
||||||
|
- IMPORT_QUEUE = import_queue
|
||||||
|
- IMPORT_DONE = import_done
|
||||||
|
- OSM_PBF = osm_pbf
|
||||||
|
- TIME = 120, seconds between each execution of the script
|
||||||
|
|
48
readme.md
48
readme.md
|
@ -1,34 +1,33 @@
|
||||||
#Docker-OSM
|
#Docker-OSM
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
In this example we will set up an OSM database for South Africa that
|
In this example we will set up an OSM database for South Africa that
|
||||||
will pull for updates every 2 minutes.
|
will pull for updates every 2 minutes.
|
||||||
|
|
||||||
First fetch the latest South Africa osm binary dump file (.pbf) and state file.
|
First get the list of available countries in Geofabrik :
|
||||||
I will write the example as generically as possible so that you can substitute
|
|
||||||
your own country or region here.
|
|
||||||
|
|
||||||
```
|
|
||||||
cd osm_pbf
|
|
||||||
wget -c -O country.pbf http://download.openstreetmap.fr/extracts/africa/south_africa.osm.pbf
|
|
||||||
wget -c -O country.state.txt http://download.openstreetmap.fr/extracts/africa/south_africa.state.txt
|
|
||||||
wget -c -O polygon.poly http://download.geofabrik.de/africa/south-africa-and-lesotho.poly
|
|
||||||
```
|
|
||||||
|
|
||||||
or you can use the PBF downloader using Geofabrik.
|
|
||||||
To get the list of available countries in Geofabrik :
|
|
||||||
``python pbf_downloader.py list``
|
``python pbf_downloader.py list``
|
||||||
|
|
||||||
|
Now fetch the latest South Africa osm binary dump file (.pbf) and state files:
|
||||||
|
|
||||||
You can download a country or a continent :
|
You can download a country or a continent :
|
||||||
``python pbf_downloader.py south-africa-and-lesotho``
|
``python pbf_downloader.py south-africa-and-lesotho``
|
||||||
|
|
||||||
The script will download the PBF file, the state file and the polygon for clipping.
|
The script will download the PBF file, the state file and the polygon for clipping.
|
||||||
|
|
||||||
|
Now build the docker images needed to run the application:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker-compose build
|
docker-compose build
|
||||||
docker-compose up
|
docker-compose up
|
||||||
```
|
```
|
||||||
|
|
||||||
|
In production you should daemonize the services when bringing them up:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
## Docker OSM Update
|
## Docker OSM Update
|
||||||
|
|
||||||
This docker image when run will fetch on a regular interval any new diff file
|
This docker image when run will fetch on a regular interval any new diff file
|
||||||
|
@ -69,13 +68,16 @@ With -e, you can add some settings :
|
||||||
- IMPORT_QUEUE = import_queue
|
- IMPORT_QUEUE = import_queue
|
||||||
- IMPORT_DONE = import_done
|
- IMPORT_DONE = import_done
|
||||||
- OSM_PBF = osm_pbf
|
- OSM_PBF = osm_pbf
|
||||||
- TIME = 120, secondes between two executions of the script
|
- TIME = 120, seconds between two executions of the script
|
||||||
|
|
||||||
|
If you are using docker-compose, you can use these settings within the
|
||||||
|
```docker-compose.yml``` file.
|
||||||
|
|
||||||
## Docker ImpOSM3
|
## Docker ImpOSM3
|
||||||
|
|
||||||
This image will take care of doing the initial load for the selected region
|
This image will take care of doing the initial load for the selected region
|
||||||
(e.g. planet, or a country such as Malawi) into your database. It will then
|
(e.g. planet, or a country such as Malawi) into your database. It will then
|
||||||
apply at a regulart interval (default is 2 minutes) any diff that arrives
|
apply, at a regular interval (default is 2 minutes), any diff that arrives
|
||||||
in the /home/import_queue folder to the postgis OSM database. The diffs
|
in the /home/import_queue folder to the postgis OSM database. The diffs
|
||||||
are fetched by a separate container (see osm_update container).
|
are fetched by a separate container (see osm_update container).
|
||||||
|
|
||||||
|
@ -98,3 +100,19 @@ With -e, you can add some settings :
|
||||||
- DBSCHEMA_PRODUCTION = public, check (Imposm)[http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables]
|
- DBSCHEMA_PRODUCTION = public, check (Imposm)[http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables]
|
||||||
- DBSCHEMA_IMPORT = import, check (Imposm)[http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables]
|
- DBSCHEMA_IMPORT = import, check (Imposm)[http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables]
|
||||||
- DBSCHEMA_BACKUP = backup, check (Imposm)[http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables]
|
- DBSCHEMA_BACKUP = backup, check (Imposm)[http://imposm.org/docs/imposm3/latest/tutorial.html#deploy-production-tables]
|
||||||
|
|
||||||
|
You can adjust these preferences in the ```docker-compose.yml``` file provided
|
||||||
|
in this repository.
|
||||||
|
|
||||||
|
# Credits
|
||||||
|
|
||||||
|
This application was designed and implemented by:
|
||||||
|
|
||||||
|
* Etienne Trimaille (etienne@kartoza.com)
|
||||||
|
* Tim Sutton (tim@kartoza.com)
|
||||||
|
|
||||||
|
With some important design ideas provided by Ariel Nunez (ingenieroariel@gmail.com)
|
||||||
|
|
||||||
|
Parts of this project are built on the existing work of others.
|
||||||
|
|
||||||
|
July 2014
|
||||||
|
|
Ładowanie…
Reference in New Issue