kopia lustrzana https://github.com/kartoza/docker-postgis
rodzic
ec57044706
commit
6fc6147160
|
@ -13,7 +13,7 @@ LANG=en_US.UTF-8
|
|||
# locale filter to include in the locale generator
|
||||
LANGS="en_US.UTF-8,id_ID.UTF-8"
|
||||
|
||||
POSTGRES_MAJOR_VERSION=14
|
||||
POSTGRES_MAJOR_VERSION=15
|
||||
POSTGIS_MAJOR_VERSION=3
|
||||
POSTGIS_MINOR_RELEASE=3
|
||||
BUILD_TIMESCALE=true
|
|
@ -27,7 +27,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
postgresMajorVersion:
|
||||
- 14
|
||||
- 15
|
||||
postgisMajorVersion:
|
||||
- 3
|
||||
postgisMinorRelease:
|
||||
|
@ -43,14 +43,14 @@ jobs:
|
|||
imageVersion: bullseye
|
||||
imageVariant: slim
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
- name: Build image for testing
|
||||
id: docker_build_testing_image
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile
|
||||
|
@ -88,7 +88,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
postgresMajorVersion:
|
||||
- 14
|
||||
- 15
|
||||
postgisMajorVersion:
|
||||
- 3
|
||||
postgisMinorRelease:
|
||||
|
@ -98,7 +98,7 @@ jobs:
|
|||
imageVersion: bullseye
|
||||
imageVariant: slim
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
|
@ -120,7 +120,7 @@ jobs:
|
|||
|
||||
- name: Build image for testing
|
||||
id: docker_build_testing_image
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile
|
||||
|
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
postgresMajorVersion:
|
||||
- 14
|
||||
- 15
|
||||
postgisMajorVersion:
|
||||
- 3
|
||||
postgisMinorRelease:
|
||||
|
@ -39,7 +39,7 @@ jobs:
|
|||
imageVersion: bullseye
|
||||
imageVariant: slim
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
|
@ -61,7 +61,7 @@ jobs:
|
|||
|
||||
- name: Build base image
|
||||
id: docker_build_base
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
@ -87,7 +87,7 @@ jobs:
|
|||
|
||||
- name: Build prod image
|
||||
id: docker_build_prod
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
|
|
@ -68,9 +68,9 @@ FROM postgis-base AS postgis-prod
|
|||
|
||||
# Reset ARG for version
|
||||
ARG IMAGE_VERSION
|
||||
ARG POSTGRES_MAJOR_VERSION=14
|
||||
ARG POSTGRES_MAJOR_VERSION=15
|
||||
ARG POSTGIS_MAJOR_VERSION=3
|
||||
ARG POSTGIS_MINOR_RELEASE=2
|
||||
ARG POSTGIS_MINOR_RELEASE=3
|
||||
ARG TIMESCALE_VERSION=2-2.7.2
|
||||
ARG BUILD_TIMESCALE=false
|
||||
|
||||
|
@ -92,6 +92,7 @@ RUN set -eux \
|
|||
# We add postgis as well to prevent build errors (that we dont see on local builds)
|
||||
# on docker hub e.g.
|
||||
# The following packages have unmet dependencies:
|
||||
#TODO add postgresql-${POSTGRES_MAJOR_VERSION}-cron back when it's available
|
||||
RUN set -eux \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
|
@ -101,7 +102,7 @@ RUN set -eux \
|
|||
netcat postgresql-${POSTGRES_MAJOR_VERSION}-ogr-fdw \
|
||||
postgresql-${POSTGRES_MAJOR_VERSION}-postgis-${POSTGIS_MAJOR_VERSION}-scripts \
|
||||
postgresql-plpython3-${POSTGRES_MAJOR_VERSION} postgresql-${POSTGRES_MAJOR_VERSION}-pgrouting \
|
||||
postgresql-server-dev-${POSTGRES_MAJOR_VERSION} postgresql-${POSTGRES_MAJOR_VERSION}-cron \
|
||||
postgresql-server-dev-${POSTGRES_MAJOR_VERSION} \
|
||||
postgresql-${POSTGRES_MAJOR_VERSION}-mysql-fdw
|
||||
|
||||
# TODO a case insensitive match would be more robust
|
||||
|
|
|
@ -7,7 +7,7 @@ volumes:
|
|||
services:
|
||||
|
||||
db:
|
||||
image: kartoza/postgis:14-3.2
|
||||
image: kartoza/postgis:15-3.3
|
||||
volumes:
|
||||
- postgis-data:/var/lib/postgresql
|
||||
- dbbackups:/backups
|
||||
|
@ -20,13 +20,13 @@ services:
|
|||
# Add extensions you need to be enabled by default in the DB. Default are the five specified below
|
||||
- POSTGRES_MULTIPLE_EXTENSIONS=postgis,hstore,postgis_topology,postgis_raster,pgrouting
|
||||
ports:
|
||||
- "25432:5432"
|
||||
- "5432"
|
||||
restart: on-failure
|
||||
healthcheck:
|
||||
test: "exit 0"
|
||||
|
||||
dbbackups:
|
||||
image: kartoza/pg-backup:14-3.2
|
||||
image: kartoza/pg-backup:15-3.3
|
||||
hostname: pg-backups
|
||||
volumes:
|
||||
- dbbackups:/backups
|
||||
|
|
|
@ -329,9 +329,9 @@ fi
|
|||
|
||||
if [ -z "${SHARED_PRELOAD_LIBRARIES}" ]; then
|
||||
if [[ $(dpkg -l | grep "timescaledb") > /dev/null ]];then
|
||||
SHARED_PRELOAD_LIBRARIES='pg_cron,timescaledb'
|
||||
else
|
||||
SHARED_PRELOAD_LIBRARIES='pg_cron'
|
||||
SHARED_PRELOAD_LIBRARIES='timescaledb'
|
||||
#else
|
||||
#SHARED_PRELOAD_LIBRARIES='pg_cron'cron
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -474,4 +474,23 @@ until su - postgres -c "${PG_BASEBACKUP} -X stream -h ${REPLICATE_FROM} -p ${REP
|
|||
|
||||
}
|
||||
|
||||
function over_write_conf() {
|
||||
if [[ -f ${ROOT_CONF}/postgis.conf ]];then
|
||||
sed -i '/postgis.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/postgis.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
if [[ -f ${ROOT_CONF}/logical_replication.conf ]];then
|
||||
sed -i '/logical_replication.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/logical_replication.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
if [[ -f ${ROOT_CONF}/streaming_replication.conf ]];then
|
||||
sed -i '/streaming_replication.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/streaming_replication.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
if [[ -f ${ROOT_CONF}/extra.conf ]];then
|
||||
sed -i '/extra.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/extra.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -101,28 +101,20 @@ fi
|
|||
# Timescale default tuning
|
||||
# TODO If timescale DB accepts reading from include directory then refactor code to remove line 97 - 112 (https://github.com/timescale/timescaledb-tune/issues/80)
|
||||
if [[ $(dpkg -l | grep "timescaledb") > /dev/null ]] && [[ ${ACCEPT_TIMESCALE_TUNING} =~ [Tt][Rr][Uu][Ee] ]] ;then
|
||||
if [[ -f ${ROOT_CONF}/postgis.conf ]];then
|
||||
sed -i '/postgis.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/postgis.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
if [[ -f ${ROOT_CONF}/logical_replication.conf ]];then
|
||||
sed -i '/logical_replication.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/logical_replication.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
if [[ -f ${ROOT_CONF}/streaming_replication.conf ]];then
|
||||
sed -i '/streaming_replication.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/streaming_replication.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
if [[ -f ${ROOT_CONF}/extra.conf ]];then
|
||||
sed -i '/extra.conf/d' "${ROOT_CONF}"/postgresql.conf
|
||||
cat "${ROOT_CONF}"/extra.conf >> "${ROOT_CONF}"/postgresql.conf
|
||||
fi
|
||||
over_write_conf
|
||||
echo -e "\e[1;31m Time scale config tuning values below"
|
||||
# TODO Add logic to find defaults memory, CPUS as these can vary from defaults on host machine and in docker container
|
||||
timescaledb-tune -yes -quiet "${TIMESCALE_TUNING_PARAMS}" --conf-path="${ROOT_CONF}"/postgresql.conf
|
||||
echo -e "\033[0m Time scale config tuning values set in ${ROOT_CONF}/postgresql.conf"
|
||||
elif [[ ${ACCEPT_TIMESCALE_TUNING} =~ [Tt][Rr][Uu][Ee] ]]; then
|
||||
|
||||
echo -e "\e[1;31m Time scale config tuning values below"
|
||||
timescaledb-tune -yes -quiet "${TIMESCALE_TUNING_PARAMS}" --conf-path="${ROOT_CONF}"/time_scale_tuning.conf
|
||||
echo -e "\033[0m Time scale config tuning values set in ${ROOT_CONF}/time_scale_tuning.conf"
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Optimise PostgreSQL shared memory for PostGIS
|
||||
# shmall units are pages and shmmax units are bytes(?) equivalent to the desired shared_buffer size set in setup_conf.sh - in this case 500MB
|
||||
echo "kernel.shmmax=543252480" >> /etc/sysctl.conf
|
||||
|
|
|
@ -110,7 +110,7 @@ for db in $(echo ${POSTGRES_DBNAME} | tr ',' ' '); do
|
|||
if [[ ${RESULT} -eq 0 ]]; then
|
||||
echo "Create db ${db}"
|
||||
su - postgres -c "createdb -O ${POSTGRES_USER} ${db}"
|
||||
su - postgres -c "psql -c 'CREATE EXTENSION IF NOT EXISTS pg_cron cascade;' ${SINGLE_DB}"
|
||||
#su - postgres -c "psql -c 'CREATE EXTENSION IF NOT EXISTS pg_cron cascade;' ${SINGLE_DB}"
|
||||
for ext in $(echo ${POSTGRES_MULTIPLE_EXTENSIONS} | tr ',' ' '); do
|
||||
echo "Enabling \"${ext}\" in the database ${db}"
|
||||
if [[ ${ext} != 'pg_cron' ]]; then
|
||||
|
|
Ładowanie…
Reference in New Issue