diff --git a/Dockerfile b/Dockerfile index cab830f..05c761d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,10 @@ ENV UPDATES=disabled RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # Install dependencies -RUN echo "deb [ allow-insecure=yes ] http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" >> /etc/apt/sources.list.d/pgdg.list \ +RUN apt-get update \ + && apt-get install wget gnupg2 lsb-core -y \ + && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ + && echo "deb [ trusted=yes ] http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list \ && apt-get update \ && apt-get install -y apt-transport-https ca-certificates \ && apt-get install -y --no-install-recommends --allow-unauthenticated \ @@ -24,7 +27,9 @@ RUN echo "deb [ allow-insecure=yes ] http://apt.postgresql.org/pub/repos/apt/ bi fonts-noto-hinted \ fonts-noto-unhinted \ clang \ + gcc \ gdal-bin \ + make \ git-core \ libagg-dev \ libboost-all-dev \ @@ -52,10 +57,9 @@ RUN echo "deb [ allow-insecure=yes ] http://apt.postgresql.org/pub/repos/apt/ bi nodejs \ npm \ postgis \ - postgresql-10 \ - postgresql-10-postgis-2.5 \ - postgresql-10-postgis-2.5-scripts \ - postgresql-contrib-10 \ + postgresql-12 \ + postgresql-server-dev-12 \ + postgresql-contrib-12 \ protobuf-c-compiler \ python-mapnik \ sudo \ @@ -72,6 +76,11 @@ RUN echo "deb [ allow-insecure=yes ] http://apt.postgresql.org/pub/repos/apt/ bi && apt-get autoremove --yes \ && rm -rf /var/lib/{apt,dpkg,cache,log}/ +# Set up PostGIS +RUN wget http://download.osgeo.org/postgis/source/postgis-3.0.0rc2.tar.gz +RUN tar -xvzf postgis-3.0.0rc2.tar.gz +RUN cd postgis-3.0.0rc2 && ./configure && make && make install + # Set up renderer user RUN adduser --disabled-password --gecos "" renderer USER renderer diff --git a/Makefile b/Makefile index 247c1e2..7c37786 100644 --- a/Makefile +++ b/Makefile @@ -8,5 +8,5 @@ push: build test: build docker volume create openstreetmap-data - docker run -v openstreetmap-data:/var/lib/postgresql/10/main overv/openstreetmap-tile-server import - docker run -v openstreetmap-data:/var/lib/postgresql/10/main -p 80:80 -d overv/openstreetmap-tile-server run \ No newline at end of file + docker run -v openstreetmap-data:/var/lib/postgresql/12/main overv/openstreetmap-tile-server import + docker run -v openstreetmap-data:/var/lib/postgresql/12/main -p 80:80 -d overv/openstreetmap-tile-server run diff --git a/README.md b/README.md index 52f6cd9..6aa564b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Next, download an .osm.pbf extract from geofabrik.de for the region that you're ``` docker run \ -v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ overv/openstreetmap-tile-server \ import ``` @@ -28,7 +28,7 @@ If your import is an extract of the planet and has polygonal bounds associated w docker run \ -v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ -v /absolute/path/to/luxembourg.poly:/data.poly \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ overv/openstreetmap-tile-server \ import ``` @@ -42,7 +42,7 @@ Run the server like this: ``` docker run \ -p 80:80 \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -57,7 +57,7 @@ Tiles that have already been rendered will be stored in `/var/lib/mod_tile`. To docker volume create openstreetmap-rendered-tiles docker run \ -p 80:80 \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-rendered-tiles:/var/lib/mod_tile \ -d overv/openstreetmap-tile-server \ run @@ -73,7 +73,7 @@ Given that you've specified both the OSM data and polygon as specified in the *A docker run \ -p 80:80 \ -e UPDATES=enabled \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-rendered-tiles:/var/lib/mod_tile \ -d overv/openstreetmap-tile-server \ run @@ -88,7 +88,7 @@ To enable the `Access-Control-Allow-Origin` header to be able to retrieve tiles ``` docker run \ -p 80:80 \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -e ALLOW_CORS=1 \ -d overv/openstreetmap-tile-server \ run @@ -102,7 +102,7 @@ To connect to the PostgreSQL database inside the container, make sure to expose docker run \ -p 80:80 \ -p 5432:5432 \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -120,7 +120,7 @@ docker run \ -p 80:80 \ -p 5432:5432 \ -e PGPASSWORD=secret \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -136,7 +136,7 @@ The import and tile serving processes use 4 threads by default, but this number docker run \ -p 80:80 \ -e THREADS=24 \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -148,7 +148,7 @@ The import and tile serving processes use 800 MB RAM cache by default, but this docker run \ -p 80:80 \ -e "OSM2PGSQL_EXTRA_ARGS=-C 4096" \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -160,7 +160,7 @@ The database use the autovacuum feature by default. This behavior can be changed docker run \ -p 80:80 \ -e AUTOVACUUM=off \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -173,7 +173,7 @@ If you are planning to import the entire planet or you are running into memory e docker run \ -v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ -v openstreetmap-nodes:/nodes \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ -e "OSM2PGSQL_EXTRA_ARGS=--flat-nodes /nodes/flat_nodes.bin" \ overv/openstreetmap-tile-server \ import @@ -198,7 +198,7 @@ To raise it use `--shm-size` parameter. For example: ``` docker run \ -p 80:80 \ - -v openstreetmap-data:/var/lib/postgresql/10/main \ + -v openstreetmap-data:/var/lib/postgresql/12/main \ --shm-size="192m" \ -d overv/openstreetmap-tile-server \ run diff --git a/run.sh b/run.sh index 9522cdd..56166d3 100755 --- a/run.sh +++ b/run.sh @@ -3,9 +3,9 @@ set -x function createPostgresConfig() { - cp /etc/postgresql/10/main/postgresql.custom.conf.tmpl /etc/postgresql/10/main/postgresql.custom.conf - sudo -u postgres echo "autovacuum = $AUTOVACUUM" >> /etc/postgresql/10/main/postgresql.custom.conf - cat /etc/postgresql/10/main/postgresql.custom.conf + cp /etc/postgresql/12/main/postgresql.custom.conf.tmpl /etc/postgresql/12/main/postgresql.custom.conf + sudo -u postgres echo "autovacuum = $AUTOVACUUM" >> /etc/postgresql/12/main/postgresql.custom.conf + cat /etc/postgresql/12/main/postgresql.custom.conf } function setPostgresPassword() {