<div dir="ltr"><div>Sziasztok!</div><div><br></div><div>Egy rövid leírást csináltam egy Dockerizált osm postgres adatbázis klónozásról. Azaz csak a magyar területről. Részben magamnak is csináltam emlékeztetőnek.<br></div><div><br></div><div>Ha tetszik, akkor később beemelhetem a wikibe is.</div><div><br></div><div><span style="background-color: rgb(255, 255, 0);">Docker fájlok letöltése GIT-ről</span><br></div><code>sly@sly: ~/Documents/HOME/mypgisdb/osm2pgsql$<b> git clone https://github.com/OsmHackTW/osm2pgsql-docker.git</b><br>Cloning into 'osm2pgsql-docker'...<br>remote: Enumerating objects: 116, done.<br>remote: Total 116 (delta 0), reused 0 (delta 0), pack-reused 116<br>Receiving objects: 100% (116/116), 16.41 KiB | 190.00 KiB/s, done.<br>Resolving deltas: 100% (51/51), done.<br></code><code></code><div><br></div><div><code><code><br>sly@sly:~/Documents/HOME/mypgisdb/osm2pgsql$ <b>cd osm2pgsql-docker/</b><br></code></code></div><div><br><code><code><span style="background-color: rgb(255, 255, 0);">Futtathatóvá tétel<br></span></code></code></div><div><code><code><span style="background-color: rgb(255, 255, 0);"></span>sly@sly:~/Documents/HOME/mypgisdb/osm2pgsql/osm2pgsql-docker$ <b>chmod +x run.sh</b></code></code></div><div><code><code><code><code>sly@sly:~/Documents/HOME/mypgisdb/osm2pgsql/osm2pgsql-docker$ <b>chmod +x </b></code></code></code></code><b><code><code><code><code><code><code>postgis</code></code>.sh</code></code></code></code></b></div><div><br><code><code><code><code></code></code></code></code></div><div><br><code><code><span style="background-color: rgb(255, 255, 0);">Postgis DB letöltése és indítása<br></span></code></code></div><div><code><code>sly@sly:~/Documents/HOME/mypgisdb/osm2pgsql/osm2pgsql-docker$ <b>sudo ./postgis.sh</b><br>[sudo] password for sly:<br>Unable to find image 'osmtw/postgis:latest' locally<br><br>latest: Pulling from osmtw/postgis<br>f2aa67a397c4: Pull complete<br><i>[...]</i><br>d5d0857dfa92: Pull complete<br>Digest: sha256:7b5096f988ca99e7ea904e968dacf48f0c4dd4c9f3cfe11f025d2ed6e2153d1e<br>Status: Downloaded newer image for osmtw/postgis:latest<br>d12745342012af7bb5f9ae643864d9821eb172e61afc8c59dc212440aa49d386<br><br></code></code><br><code><code><code><code><span style="background-color: rgb(255, 255, 0);">Postgis DB frissítő letöltése és indítása</span></code></code></code></code></div><div><code><code><code><code><span style="background-color: rgb(255, 255, 0);"></span></code></code>sly@sly:~/Documents/HOME/mypgisdb/osm2pgsql/osm2pgsql-docker$ <b>sudo ./run.sh</b><br>Unable to find image 'osmtw/osm2pgsql:0.96.0' locally<br>docker: Error response from daemon: manifest for osmtw/osm2pgsql:0.96.0 not found.<br>See 'docker run --help'.</code></code></div><div><code><code><br></code></code></div><div><code><code><br></code></code></div><div><span style="background-color: rgb(255, 255, 0);"><code><code><br></code></code></span></div><div><code><code><span style="background-color: rgb(255, 255, 0);">Valamiért nem működik a v96-al ezért átállítom a run.sh-ban verziót. Ha már erre járok az országot is:</span><br></code></code></div><div><code><code><div style="background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; overflow-wrap: break-word;" class="prettyprint"><code class="prettyprint"><div class="subprettyprint"><span style="color: #800;" class="styled-by-prettify">#!/bin/bash</span><span style="color: #000;" class="styled-by-prettify"><br>POSTGIS_INSTANCE</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #000;" class="styled-by-prettify">$</span><span style="color: #660;" class="styled-by-prettify">{</span><span style="color: #066;" class="styled-by-prettify">1</span><span style="color: #660;" class="styled-by-prettify">:-</span><span style="color: #080;" class="styled-by-prettify">"osmdb"</span><span style="color: #660;" class="styled-by-prettify">}</span><span style="color: #000;" class="styled-by-prettify"><br>REGION</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #000;" class="styled-by-prettify">$</span><span style="color: #660;" class="styled-by-prettify">{</span><span style="color: #066;" class="styled-by-prettify">2</span><span style="color: #660;" class="styled-by-prettify">:-</span><span style="color: #080;" class="styled-by-prettify">"</span><span style="background-color: rgb(255, 255, 0);"><span style="color: #080;" class="styled-by-prettify">europe/hungary</span></span><span style="color: #080;" class="styled-by-prettify">"</span><span style="color: #660;" class="styled-by-prettify">}</span><span style="color: #000;" class="styled-by-prettify"><br>DATADIR</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #080;" class="styled-by-prettify">/osm<br>LOOP=600<br>VERSION=${3:-"</span><span style="background-color: rgb(255, 255, 0);"><span style="color: #080;" class="styled-by-prettify">0.90.1</span></span><span style="color: #080;" class="styled-by-prettify">"}<br><br>docker run -t -i --rm \<br>    --link ${POSTGIS_INSTANCE}:pg \<br>    -e REGION=$REGION \<br>    -e DATADIR=$DATADIR \<br>    -e LOOP=$LOOP \<br>    -v ${POSTGIS_INSTANCE}-volume:$DATADIR \<br>    --name osm2pgsql \<br>    osmtw/</span><span style="color: #000;" class="styled-by-prettify">osm2pgsql</span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify">$</span><span style="color: #660;" class="styled-by-prettify">{</span><span style="color: #000;" class="styled-by-prettify">VERSION</span><span style="color: #660;" class="styled-by-prettify">}</span><span style="color: #000;" class="styled-by-prettify"><br></span></div></code></div><br><br></code></code></div><div><code><code><span style="background-color: rgb(255, 255, 0);">Ezekután újra próbálkozás</span><br></code></code></div><div><code><code><br>sly@sly:~/Documents/HOME/mypgisdb/osm2pgsql/osm2pgsql-docker$ <b>sudo ./run.sh</b><br>Unable to find image 'osmtw/osm2pgsql:0.90.1' locally<br>0.90.1: Pulling from osmtw/osm2pgsql<br>297061f60c36: Already exists<br>[...]<br>eafdf1df5b82: Pull complete<br>Digest: sha256:5b4a511fb29cf30b12275e9cf84b21e497211045d002aeb7c905fc14ef95daaa<br>Status: Downloaded newer image for osmtw/osm2pgsql:0.90.1<br>REGION=europe/hungary<br>COUNTRY=hungary<br>DATADIR=/osm<br>PBF=/osm/hungary-latest.osm.pbf<br>LOOP=600<br> ?column?<br>----------<br>        1<br>(1 row)<br><br>--2018-11-17 23:34:35--  http://download.geofabrik.de/europe/hungary-latest.osm.pbf<br>Resolving download.geofabrik.de (download.geofabrik.de)... 88.99.105.98, 88.99.24.113<br>Connecting to download.geofabrik.de (download.geofabrik.de)|88.99.105.98|:80... connected.<br>HTTP request sent, awaiting response... 200 OK<br>Length: 152091283 (145M) [application/octet-stream]<br>Saving to: '/osm/sy8.pbf'<br><br>/osm/sy8.pbf                                         100%[=====================================================================================================================>] 145.04M  2.64MB/s    in 64s    <br><br>2018-11-17 23:35:39 (2.26 MB/s) - '/osm/sy8.pbf' saved [152091283/152091283]<br><br>osm2pgsql SVN version 0.90.1-dev (64 bit id space)<br><br>Using built-in tag processing pipeline<br>Using projection SRS 900913 (Spherical Mercator)<br>Setting up table: planet_osm_point<br>Setting up table: planet_osm_line<br>Setting up table: planet_osm_polygon<br>Setting up table: planet_osm_roads<br>Allocating memory for dense node cache<br>Allocating dense node cache in one big chunk<br>Allocating memory for sparse node cache<br>Sharing dense sparse<br>Node-cache: cache=2000MB, maxblocks=32000*65536, allocation method=11<br>Mid: pgsql, scale=100 cache=2000<br>Setting up table: planet_osm_nodes<br>Setting up table: planet_osm_ways<br>Setting up table: planet_osm_rels<br><br>Reading in file: /osm/sy8.pbf<br>Using PBF parser.<br>Processing: Node(16565k 233.3k/s) Way(2264k 73.06k/s) Relation(81750 286.84/s)  parse time: 387s<br>Node stats: total(16565415), max(6067328962) in 71s<br>Way stats: total(2264858), max(645435423) in 31s<br>Relation stats: total(81751), max(8971464) in 285s<br>Committing transaction for planet_osm_point<br>[...]<br>Setting up table: planet_osm_rels<br>Using built-in tag processing pipeline<br><br>Going over pending ways...<br>    1326922 ways are pending<br><br>Using 8 helper-processes<br>Finished processing 1326922 ways in 58 s<br><br>1326922 Pending ways took 58s at a rate of 22877.97/s<br>Committing transaction for planet_osm_point<br>[...]<br>Stopped table: planet_osm_rels in 1s<br>node cache: stored: 16565415(100.00%), storage efficiency: 50.17% (dense blocks: 64, sparse nodes: 16247848), hit rate: 100.20%<br><br>Osm2pgsql took 596s overall<br>'/osm/sy8.pbf' -> '/osm/hungary-latest.osm.pbf'<br><br><br> ?column?<br>----------<br>        1<br>(1 row)<br><br>osmupdate Parameter: --base-url=download.geofabrik.de/europe/hungary-updates<br>osmupdate Parameter: /osm/hungary-latest.osm.pbf<br>osmupdate Parameter: /osm/kNe.pbf<br>osmupdate: timestamp of /osm/hungary-latest.osm.pbf: 2018-11-16T21:14:03Z<br>osmupdate: newest sporadic timestamp: 2018-11-16T21:14:03Z<br>osmupdate: Found status information in base URL root.<br>osmupdate: Ignoring subdirectories "minute", "hour", "day".<br>osmupdate: Creating output file.<br>osmupdate: Your OSM file is already up-to-date.<br></code></code></div><div><br><code><code></code></code></div><div><br><code><code></code></code></div><div><span style="background-color: rgb(255, 255, 0);"><code><code>Ekkor lefutott az import is.</code></code></span></div><div><br><code><code></code></code></div><div><b><code><code>Elérhetőség ellenőrzése.</code></code></b></div><div><code><code><br></code></code></div><div><span style="background-color: rgb(255, 255, 0);"><code><code>Információk lekérése:</code></code></span></div><div><code><code><b>sudo docker exec osmdb env</b><br>PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/10/bin<br>HOSTNAME=d12745342012<br><b>POSTGRES_PASSWORD=lQVddc4d3nj</b><br><b>POSTGRES_USER=postgres</b><br><b>POSTGRES_DB=postgres</b><br>GOSU_VERSION=1.10<br>LANG=en_US.utf8<br>PG_MAJOR=10<br>PG_VERSION=10.4-2.pgdg90+1<br>PGDATA=/var/lib/postgresql/data<br>POSTGIS_MAJOR=2.4<br>POSTGIS_VERSION=2.4.4+dfsg-1.pgdg90+1<br>HOME=/root<br></code></code></div><div><code><code><br></code></code></div><div><code><code><span style="background-color: rgb(255, 255, 0);">IP:</span><br></code></code></div><div><code><code><b>sudo docker exec osmdb bash -c 'hostname -I'</b><br>172.17.0.2 <br></code></code></div><div><code><code><br></code></code></div><div><span style="background-color: rgb(255, 255, 0);"><code><code>Kapcsolódás az adatbázishoz:</code></code></span></div><div><code><code><b>psql -h 172.17.0.2 -U postgres -p 5432 -l</b><br>Password for user postgres: <br>                                    List of databases<br>       Name       |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   <br>------------------+----------+----------+------------+------------+-----------------------<br> postgres         | postgres | UTF8     | en_US.utf8 | en_US.utf8 | <br> template0        | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +<br>                  |          |          |            |            | postgres=CTc/postgres<br> template1        | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +<br>                  |          |          |            |            | postgres=CTc/postgres<br> template_postgis | postgres | UTF8     | en_US.utf8 | en_US.utf8 | <br>(4 rows)<br></code></code></div><div><code><code><br></code></code></div><div><code><code><b> sudo docker ps</b><br>[sudo] password for sly: <br>CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS               NAMES<br>847f6527107c        osmtw/osm2pgsql:0.90.1   "/bin/bash -i /usr/l…"   8 minutes ago       Up 7 minutes                            osm2pgsql<br>d12745342012        osmtw/postgis            "docker-entrypoint.s…"   22 minutes ago      Up 21 minutes       5432/tcp            osmdb<br><br></code></code></div><div><code><code><br></code></code></div><div><code><code><br></code></code></div><div><code><code><b>Megjegyzés:</b><br></code></code></div><div><code><code>Ha jól sejtem 600 másodpercenként frissül az adatbázis, amit az </code></code><code><code>osm2pgsql docker csinál.</code></code></div><div><code><code></code></code><code><code>osmdb maga az adatbázis.</code></code><br><code><code></code></code></div></div>