switch to 14

This commit is contained in:
Greg 2022-02-17 09:30:50 -05:00
parent 24406e8a6a
commit 26915fd4dc
6 changed files with 35 additions and 31 deletions

View File

@ -11,8 +11,8 @@ before_script:
script: script:
- docker build --pull --cache-from overv/openstreetmap-tile-server --tag overv/openstreetmap-tile-server . - docker build --pull --cache-from overv/openstreetmap-tile-server --tag overv/openstreetmap-tile-server .
- docker volume create openstreetmap-data - 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/14/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 -p 8080:80 -d overv/openstreetmap-tile-server run
- sleep 30 - sleep 30
- make DOCKER_IMAGE=overv/openstreetmap-tile-server stop - make DOCKER_IMAGE=overv/openstreetmap-tile-server stop
after_script: after_script:

View File

@ -6,6 +6,7 @@ RUN apt-get update \
git-core \ git-core \
checkinstall \ checkinstall \
g++ \ g++ \
gnupg2 \
make \ make \
tar \ tar \
wget \ wget \
@ -14,8 +15,11 @@ RUN apt-get update \
########################################################################################################### ###########################################################################################################
FROM compiler-common AS compiler-postgis FROM compiler-common AS compiler-postgis
RUN apt-get install -y --no-install-recommends \ RUN echo "deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
postgresql-server-dev-12 \ && 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 \ libxml2-dev \
libgeos-dev \ libgeos-dev \
libproj-dev libproj-dev
@ -120,7 +124,7 @@ RUN apt-get update \
mapnik-utils \ mapnik-utils \
osmium-tool \ osmium-tool \
osmosis \ osmosis \
postgresql-12 \ postgresql-14 \
python-is-python3 \ python-is-python3 \
python3-mapnik \ python3-mapnik \
python3-lxml \ python3-lxml \
@ -166,11 +170,11 @@ RUN mkdir /nodes \
&& chown renderer:renderer /nodes && chown renderer:renderer /nodes
# Configure PosgtreSQL # 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 \ RUN chown -R postgres:postgres /var/lib/postgresql \
&& chown postgres:postgres /etc/postgresql/12/main/postgresql.custom.conf.tmpl \ && chown postgres:postgres /etc/postgresql/14/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.0.0.0/0 md5" >> /etc/postgresql/14/main/pg_hba.conf \
&& echo "host all all ::/0 md5" >> /etc/postgresql/12/main/pg_hba.conf && echo "host all all ::/0 md5" >> /etc/postgresql/14/main/pg_hba.conf
########################################################################################################### ###########################################################################################################

View File

@ -10,8 +10,8 @@ push: build
test: build test: build
docker volume create openstreetmap-data 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/14/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 -p 8080:80 -d ${DOCKER_IMAGE} run
stop: stop:
docker rm -f `docker ps | grep '${DOCKER_IMAGE}' | awk '{ print $$1 }'` || true docker rm -f `docker ps | grep '${DOCKER_IMAGE}' | awk '{ print $$1 }'` || true

View File

@ -15,7 +15,7 @@ Next, download an .osm.pbf extract from geofabrik.de for the region that you're
``` ```
docker run \ docker run \
-v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ -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 \ overv/openstreetmap-tile-server \
import import
``` ```
@ -31,7 +31,7 @@ docker run \
-e UPDATES=enabled \ -e UPDATES=enabled \
-v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ -v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \
-v /absolute/path/to/luxembourg.poly:/data.poly \ -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 \ overv/openstreetmap-tile-server \
import import
``` ```
@ -46,7 +46,7 @@ It is also possible to let the container download files for you rather than moun
docker run \ docker run \
-e DOWNLOAD_PBF=https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf \ -e DOWNLOAD_PBF=https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf \
-e DOWNLOAD_POLY=https://download.geofabrik.de/europe/luxembourg.poly \ -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 \ overv/openstreetmap-tile-server \
import import
``` ```
@ -58,7 +58,7 @@ Run the server like this:
``` ```
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run 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 volume create openstreetmap-rendered-tiles
docker run \ docker run \
-p 8080:80 \ -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 \ -v openstreetmap-rendered-tiles:/var/lib/mod_tile \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
@ -93,7 +93,7 @@ Given that you've set up your import as described in the *Automatic updates* sec
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-e UPDATES=enabled \ -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 \ -v openstreetmap-rendered-tiles:/var/lib/mod_tile \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
@ -108,7 +108,7 @@ To enable the `Access-Control-Allow-Origin` header to be able to retrieve tiles
``` ```
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
-e ALLOW_CORS=enabled \ -e ALLOW_CORS=enabled \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
@ -122,7 +122,7 @@ To connect to the PostgreSQL database inside the container, make sure to expose
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-p 5432:5432 \ -p 5432:5432 \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
``` ```
@ -140,7 +140,7 @@ docker run \
-p 8080:80 \ -p 8080:80 \
-p 5432:5432 \ -p 5432:5432 \
-e PGPASSWORD=secret \ -e PGPASSWORD=secret \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
``` ```
@ -156,7 +156,7 @@ The import and tile serving processes use 4 threads by default, but this number
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-e THREADS=24 \ -e THREADS=24 \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
``` ```
@ -168,7 +168,7 @@ The import and tile serving processes use 800 MB RAM cache by default, but this
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-e "OSM2PGSQL_EXTRA_ARGS=-C 4096" \ -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 \ -d overv/openstreetmap-tile-server \
run run
``` ```
@ -180,7 +180,7 @@ The database use the autovacuum feature by default. This behavior can be changed
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-e AUTOVACUUM=off \ -e AUTOVACUUM=off \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run
``` ```
@ -193,7 +193,7 @@ If you are planning to import the entire planet or you are running into memory e
docker run \ docker run \
-v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \ -v /absolute/path/to/luxembourg.osm.pbf:/data.osm.pbf \
-v openstreetmap-nodes:/nodes \ -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" \ -e "OSM2PGSQL_EXTRA_ARGS=--flat-nodes /nodes/flat_nodes.bin" \
overv/openstreetmap-tile-server \ overv/openstreetmap-tile-server \
import import
@ -218,7 +218,7 @@ To raise it use `--shm-size` parameter. For example:
``` ```
docker run \ docker run \
-p 8080:80 \ -p 8080:80 \
-v openstreetmap-data:/var/lib/postgresql/12/main \ -v openstreetmap-data:/var/lib/postgresql/14/main \
--shm-size="192m" \ --shm-size="192m" \
-d overv/openstreetmap-tile-server \ -d overv/openstreetmap-tile-server \
run run

View File

@ -4,7 +4,7 @@ services:
map: map:
image: overv/openstreetmap-tile-server image: overv/openstreetmap-tile-server
volumes: volumes:
- openstreetmap-data:/var/lib/postgresql/12/main - openstreetmap-data:/var/lib/postgresql/14/main
ports: ports:
- "8080:80" - "8080:80"
command: "run" command: "run"

10
run.sh
View File

@ -3,9 +3,9 @@
set -euo pipefail set -euo pipefail
function createPostgresConfig() { function createPostgresConfig() {
cp /etc/postgresql/12/main/postgresql.custom.conf.tmpl /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/12/main/conf.d/postgresql.custom.conf sudo -u postgres echo "autovacuum = $AUTOVACUUM" >> /etc/postgresql/14/main/conf.d/postgresql.custom.conf
cat /etc/postgresql/12/main/conf.d/postgresql.custom.conf cat /etc/postgresql/14/main/conf.d/postgresql.custom.conf
} }
function setPostgresPassword() { function setPostgresPassword() {
@ -28,8 +28,8 @@ set -x
if [ "$1" = "import" ]; then if [ "$1" = "import" ]; then
# Ensure that database directory is in right state # Ensure that database directory is in right state
chown postgres:postgres -R /var/lib/postgresql chown postgres:postgres -R /var/lib/postgresql
if [ ! -f /var/lib/postgresql/12/main/PG_VERSION ]; then if [ ! -f /var/lib/postgresql/14/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" sudo -u postgres /usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/14/main/ initdb -o "--locale C.UTF-8"
fi fi
# Initialize PostgreSQL # Initialize PostgreSQL