diff --git a/.travis.yml b/.travis.yml index 59acde1..c072dd1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,8 +11,8 @@ before_script: script: - docker build --pull --cache-from overv/openstreetmap-tile-server --tag overv/openstreetmap-tile-server . - docker volume create openstreetmap-data -- docker run --rm -v openstreetmap-data:/var/lib/postgresql/12/main overv/openstreetmap-tile-server import -- docker run --rm -v openstreetmap-data:/var/lib/postgresql/12/main -p 8080:80 -d overv/openstreetmap-tile-server run +- docker run --rm -v openstreetmap-data:/var/lib/postgresql/14/main overv/openstreetmap-tile-server import +- docker run --rm -v openstreetmap-data:/var/lib/postgresql/14/main -p 8080:80 -d overv/openstreetmap-tile-server run - sleep 30 - make DOCKER_IMAGE=overv/openstreetmap-tile-server stop after_script: diff --git a/Dockerfile b/Dockerfile index d836fcd..5a891d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,7 @@ RUN apt-get update \ git-core \ checkinstall \ g++ \ + gnupg2 \ make \ tar \ wget \ @@ -14,8 +15,11 @@ RUN apt-get update \ ########################################################################################################### FROM compiler-common AS compiler-postgis -RUN apt-get install -y --no-install-recommends \ - postgresql-server-dev-12 \ +RUN echo "deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ +&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ +&& apt-get update \ +&& apt-get install -y --no-install-recommends \ + postgresql-server-dev-14 \ libxml2-dev \ libgeos-dev \ libproj-dev @@ -120,7 +124,7 @@ RUN apt-get update \ mapnik-utils \ osmium-tool \ osmosis \ - postgresql-12 \ + postgresql-14 \ python-is-python3 \ python3-mapnik \ python3-lxml \ @@ -166,11 +170,11 @@ RUN mkdir /nodes \ && chown renderer:renderer /nodes # Configure PosgtreSQL -COPY postgresql.custom.conf.tmpl /etc/postgresql/12/main/ +COPY postgresql.custom.conf.tmpl /etc/postgresql/14/main/ RUN chown -R postgres:postgres /var/lib/postgresql \ -&& chown postgres:postgres /etc/postgresql/12/main/postgresql.custom.conf.tmpl \ -&& echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/12/main/pg_hba.conf \ -&& echo "host all all ::/0 md5" >> /etc/postgresql/12/main/pg_hba.conf +&& chown postgres:postgres /etc/postgresql/14/main/postgresql.custom.conf.tmpl \ +&& echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/14/main/pg_hba.conf \ +&& echo "host all all ::/0 md5" >> /etc/postgresql/14/main/pg_hba.conf ########################################################################################################### diff --git a/Makefile b/Makefile index e725e62..9be0834 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ push: build test: build docker volume create openstreetmap-data - docker run --rm -v openstreetmap-data:/var/lib/postgresql/12/main ${DOCKER_IMAGE} import - docker run --rm -v openstreetmap-data:/var/lib/postgresql/12/main -p 8080:80 -d ${DOCKER_IMAGE} run + docker run --rm -v openstreetmap-data:/var/lib/postgresql/14/main ${DOCKER_IMAGE} import + docker run --rm -v openstreetmap-data:/var/lib/postgresql/14/main -p 8080:80 -d ${DOCKER_IMAGE} run stop: docker rm -f `docker ps | grep '${DOCKER_IMAGE}' | awk '{ print $$1 }'` || true diff --git a/README.md b/README.md index 4d6f47b..f2b248e 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,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/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ overv/openstreetmap-tile-server \ import ``` @@ -31,7 +31,7 @@ docker run \ -e UPDATES=enabled \ -v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ -v /absolute/path/to/luxembourg.poly:/data.poly \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ overv/openstreetmap-tile-server \ import ``` @@ -46,7 +46,7 @@ It is also possible to let the container download files for you rather than moun docker run \ -e DOWNLOAD_PBF=https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf \ -e DOWNLOAD_POLY=https://download.geofabrik.de/europe/luxembourg.poly \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ overv/openstreetmap-tile-server \ import ``` @@ -58,7 +58,7 @@ Run the server like this: ``` docker run \ -p 8080:80 \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -77,7 +77,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 8080:80 \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -v openstreetmap-rendered-tiles:/var/lib/mod_tile \ -d overv/openstreetmap-tile-server \ run @@ -93,7 +93,7 @@ Given that you've set up your import as described in the *Automatic updates* sec docker run \ -p 8080:80 \ -e UPDATES=enabled \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -v openstreetmap-rendered-tiles:/var/lib/mod_tile \ -d overv/openstreetmap-tile-server \ run @@ -108,7 +108,7 @@ To enable the `Access-Control-Allow-Origin` header to be able to retrieve tiles ``` docker run \ -p 8080:80 \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -e ALLOW_CORS=enabled \ -d overv/openstreetmap-tile-server \ run @@ -122,7 +122,7 @@ To connect to the PostgreSQL database inside the container, make sure to expose docker run \ -p 8080:80 \ -p 5432:5432 \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -140,7 +140,7 @@ docker run \ -p 8080:80 \ -p 5432:5432 \ -e PGPASSWORD=secret \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -156,7 +156,7 @@ The import and tile serving processes use 4 threads by default, but this number docker run \ -p 8080:80 \ -e THREADS=24 \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -168,7 +168,7 @@ The import and tile serving processes use 800 MB RAM cache by default, but this docker run \ -p 8080:80 \ -e "OSM2PGSQL_EXTRA_ARGS=-C 4096" \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -180,7 +180,7 @@ The database use the autovacuum feature by default. This behavior can be changed docker run \ -p 8080:80 \ -e AUTOVACUUM=off \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -d overv/openstreetmap-tile-server \ run ``` @@ -193,7 +193,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/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ -e "OSM2PGSQL_EXTRA_ARGS=--flat-nodes /nodes/flat_nodes.bin" \ overv/openstreetmap-tile-server \ import @@ -218,7 +218,7 @@ To raise it use `--shm-size` parameter. For example: ``` docker run \ -p 8080:80 \ - -v openstreetmap-data:/var/lib/postgresql/12/main \ + -v openstreetmap-data:/var/lib/postgresql/14/main \ --shm-size="192m" \ -d overv/openstreetmap-tile-server \ run diff --git a/docker-compose.yml b/docker-compose.yml index 9aaa6c2..51b31c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: map: image: overv/openstreetmap-tile-server volumes: - - openstreetmap-data:/var/lib/postgresql/12/main + - openstreetmap-data:/var/lib/postgresql/14/main ports: - "8080:80" command: "run" diff --git a/run.sh b/run.sh index 454239d..81dc5e4 100755 --- a/run.sh +++ b/run.sh @@ -3,9 +3,9 @@ set -euo pipefail function createPostgresConfig() { - cp /etc/postgresql/12/main/postgresql.custom.conf.tmpl /etc/postgresql/12/main/conf.d/postgresql.custom.conf - sudo -u postgres echo "autovacuum = $AUTOVACUUM" >> /etc/postgresql/12/main/conf.d/postgresql.custom.conf - cat /etc/postgresql/12/main/conf.d/postgresql.custom.conf + cp /etc/postgresql/14/main/postgresql.custom.conf.tmpl /etc/postgresql/14/main/conf.d/postgresql.custom.conf + sudo -u postgres echo "autovacuum = $AUTOVACUUM" >> /etc/postgresql/14/main/conf.d/postgresql.custom.conf + cat /etc/postgresql/14/main/conf.d/postgresql.custom.conf } function setPostgresPassword() { @@ -28,8 +28,8 @@ set -x if [ "$1" = "import" ]; then # Ensure that database directory is in right state chown postgres:postgres -R /var/lib/postgresql - if [ ! -f /var/lib/postgresql/12/main/PG_VERSION ]; then - sudo -u postgres /usr/lib/postgresql/12/bin/pg_ctl -D /var/lib/postgresql/12/main/ initdb -o "--locale C.UTF-8" + if [ ! -f /var/lib/postgresql/14/main/PG_VERSION ]; then + sudo -u postgres /usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/14/main/ initdb -o "--locale C.UTF-8" fi # Initialize PostgreSQL