Skip to content

Commit f6454fc

Browse files
committed
Обновление версии контейнеров до 15.4 и других последних минорных версий
- Поправил документацию - Добавил новую папку /app_db_init_sql для запуска скриптов во вновь созданной БД с именем APP_DB - Добавил переменную APP_DB_PASSWORD. - Обновил минорные версии для pgbouncer, postgres, mamonsu - Исправление ложных срабатываний в контроле JOBs для mamonsu - Update init_db_3_cron.sql
1 parent 8f2e196 commit f6454fc

41 files changed

Lines changed: 209 additions & 70 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

12/bin/hub_push.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
VERSION=12
3-
MINOR=15
3+
MINOR=16
44

55
set -euo pipefail
66

@@ -72,6 +72,6 @@ if ! docker image ls | grep "grufos/mamonsu" ; then
7272
echo " push ..."
7373
docker tag ${VERSION}_mamonsu:latest grufos/mamonsu:latest
7474
# docker push grufos/mamonsu:latest
75-
docker tag grufos/mamonsu:latest grufos/mamonsu:${VERSION}_3.5.3
76-
docker push grufos/mamonsu:${VERSION}_3.5.3
75+
docker tag grufos/mamonsu:latest grufos/mamonsu:${VERSION}_3.5.5
76+
docker push grufos/mamonsu:${VERSION}_3.5.5
7777
fi

12/docker-mamonsu/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ENV DEBIAN_RELEASE bullseye
99
ENV PG_MAJOR 12
1010
ENV BACKUP_PATH /mnt/pgbak
1111
# version mamonsu
12-
ENV VERSION 3.5.3
12+
ENV VERSION 3.5.5
1313

1414
# explicitly set user/group IDs
1515
RUN set -eux; \

12/docker-mamonsu/pg_jobs_check.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class PgJobsCheck(Plugin):
1313
# получаем список всех БД
1414
query_agent_discovery = "select datname from pg_catalog.pg_database where datistemplate = false"
1515
# контролируем ошибки для конкретной БД
16-
query = "select count(*) from cron.get_job_run_details('{1}','{0}'::interval) where status <> 'succeeded'"
16+
query = "select count(*) from cron.get_job_run_details('{1}','{0}'::interval) where status = 'failed'"
1717
query_table_exists = "select 1 from pg_class where relname='job_run_details' and relnamespace=(select oid from pg_namespace where nspname='cron')"
1818

1919
AgentPluginType = 'pg'

12/docker-postgres/Dockerfile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# https://hub.docker.com/r/postgis/postgis
55
# https://github.com/postgis/docker-postgis
66
#
7-
FROM postgres:12.15
7+
FROM postgres:12.16
88

99
LABEL maintainer="Sergey Grinko <sergey.grinko@gmail.com>"
1010

@@ -103,14 +103,15 @@ RUN localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8
103103
&& cd / \
104104
&& ln -s /usr/share/postgresql/$PG_MAJOR/tsearch_data /usr/share/postgresql/ \
105105
# ====== clean all unused package...
106-
&& apt-mark hold llvm-11-runtime \
107106
&& apt-get purge -y gcc freetds-dev git make postgresql-server-dev-$PG_MAJOR libicu-dev *-dev* \
108107
&& apt-get -f install \
109108
&& apt-get -y autoremove \
110109
&& apt-get -y clean \
111110
&& apt-get -y autoclean \
112111
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/apt/* \
113-
&& mkdir -p /docker-entrypoint-initdb.d
112+
&& mkdir -p /docker-entrypoint-initdb.d \
113+
&& mkdir -p /app_db_init_sql \
114+
&& chmod 0777 /app_db_init_sql
114115

115116
COPY ./locales.conf /etc/locales.conf
116117
# copy bash files

12/docker-postgres/initdb-extension.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ cd /usr/local/bin/
6161

6262
# Create the 'template_extension' template DB and application DB
6363
if [ "$APP_DB" != "" ]; then
64-
psql -f pre.sql -v DEPLOY_PASSWORD="$DEPLOY_PASSWORD" -v PGBOUNCER_PASSWORD="$PGBOUNCER_PASSWORD" -v APP_DB="$APP_DB"
64+
psql -f pre.sql -v DEPLOY_PASSWORD="$DEPLOY_PASSWORD" -v PGBOUNCER_PASSWORD="$PGBOUNCER_PASSWORD" -v APP_DB="$APP_DB" -v APP_DB_PASSWORD="$APP_DB_PASSWORD"
6565
else
6666
psql -f pre.sql -v DEPLOY_PASSWORD="$DEPLOY_PASSWORD" -v PGBOUNCER_PASSWORD="$PGBOUNCER_PASSWORD"
6767
fi
@@ -80,6 +80,13 @@ for DB in "$POSTGRES_DB" template_extension "$APP_DB" ; do
8080
if [ "$DB" != "template_extension" ] ; then
8181
psql --dbname="$DB" -f db_target.sql -v DEV_SCHEMA="$DEV_SCHEMA" -v email_server="$EMAIL_SERVER"
8282
fi
83+
if [ "$DB" = "$APP_DB" ] ; then
84+
echo " Иннициализируем БД всеми скриптами из каталога /app_db_init_sql ..."
85+
for file_sql in $(ls /app_db_init_sql/*.sql) ; do
86+
echo "Файл: $file_sql"
87+
psql --dbname="$DB" -f "$file_sql"
88+
done
89+
fi
8390
fi
8491
fi
8592
done

12/docker-postgres/sql/init_db_3_cron.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,10 @@ GRANT ALL ON SCHEMA cron TO postgres;
212212
-- в 1-ю неделю месяца замораживаем идентификаторы транзакций, в остальные недели только собираем статистику
213213
\if :{?IS_SETUPDB}
214214
\if :IS_SETUPDB
215-
select cron.schedule('vacuum JOB freeze', '0 0 1-7 * 0', 'vacuum (freeze,analyze);'); -- 1-я неделя каждого месяца
216-
select cron.schedule('vacuum JOB', '0 0 8-31 * 0', 'vacuum (analyze);'); -- 2-4 неделя каждого месяца
215+
select cron.schedule('vacuum JOB freeze', '0 0 1-7 1,6 */7', 'vacuum (freeze,analyze);'); -- 1-я неделя каждого полугодия
216+
select cron.schedule('vacuum JOB', '0 0 8-31 * */7', 'vacuum (analyze);'); -- 2-4 неделя каждого месяца
217217
\endif
218218
\else
219-
select cron.schedule('vacuum JOB freeze', '0 0 1-7 * 0', 'vacuum (freeze,analyze);'); -- 1-я неделя каждого месяца
220-
select cron.schedule('vacuum JOB', '0 0 8-31 * 0', 'vacuum (analyze);'); -- 2-4 неделя каждого месяца
219+
select cron.schedule('vacuum JOB freeze', '0 0 1-7 1,6 */7', 'vacuum (freeze,analyze);'); -- 1-я неделя каждого полугодия
220+
select cron.schedule('vacuum JOB', '0 0 8-31 * */7', 'vacuum (analyze);'); -- 2-4 неделя каждого месяца
221221
\endif

12/docker-postgres/sql/pre.sql

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@ select not exists(select true FROM pg_catalog.pg_database where datname='templat
1515
\if :is_check
1616
CREATE DATABASE :"APP_DB";
1717
\endif
18+
19+
-- роль для приложения
20+
select not exists(select true FROM pg_catalog.pg_roles where rolname=:'APP_DB') as is_check
21+
\gset
22+
\if :is_check
23+
CREATE ROLE :"APP_DB" ;
24+
SET log_statement='none';
25+
ALTER ROLE :"APP_DB" WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD :'APP_DB_PASSWORD';
26+
SET log_statement='ddl';
27+
ALTER DATABASE :"APP_DB" OWNER TO :"APP_DB";
28+
\endif
1829
\endif
1930

2031
-- create role deploy
@@ -109,3 +120,9 @@ GRANT CONNECT ON DATABASE postgres TO execution_group;
109120
GRANT CONNECT ON DATABASE postgres TO read_procedure_group;
110121
GRANT CONNECT ON DATABASE postgres TO monitoring_group;
111122
GRANT ALL PRIVILEGES ON TABLESPACE pg_global TO monitoring_group;
123+
124+
-- на пока даём права как для ORM роли приложения
125+
\if :{?APP_DB}
126+
GRANT write_group TO :"APP_DB" ;
127+
GRANT execution_group TO :"APP_DB" ;
128+
\endif

12/postgres-service.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ services:
1717
- "/var/log/postgresql1:/var/log/postgresql"
1818
- "/mnt/pgbak2/:/mnt/pgbak/"
1919
- "/usr/share/postgres/12_1/tsearch_data:/usr/share/postgresql/tsearch_data"
20+
- "/var/lib/pgsql/12_1/app_db_init_sql:/app_db_init_sql"
2021
ports:
2122
- "5433:5432"
2223
environment:
2324
ENV_DB_VALUE: DEV
2425
APP_DB: "My_db"
26+
APP_DB_PASSWORD: qweasdzxc
2527
# POSTGRES_INITDB_ARGS: "--locale=ru_RU.UTF8 --data-checksums"
2628
POSTGRES_PASSWORD: qweasdzxc
2729
POSTGRES_HOST_AUTH_METHOD: trust

12/postgres-service_all.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ services:
1717
- "/var/log/postgresql1:/var/log/postgresql"
1818
- "/mnt/pgbak2/:/mnt/pgbak/"
1919
- "/usr/share/postgres/12_1/tsearch_data:/usr/share/postgresql/tsearch_data"
20+
- "/var/lib/pgsql/12_1/app_db_init_sql:/app_db_init_sql"
2021
ports:
2122
- "5433:5432"
2223
environment:
2324
ENV_DB_VALUE: DEV
2425
APP_DB: "My_db"
26+
APP_DB_PASSWORD: qweasdzxc
2527
# POSTGRES_INITDB_ARGS: "--locale=ru_RU.UTF8 --data-checksums"
2628
POSTGRES_PASSWORD: qweasdzxc
2729
POSTGRES_HOST_AUTH_METHOD: trust

12/postgres-service_pgb.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ services:
1717
- "/var/log/postgresql1:/var/log/postgresql"
1818
- "/mnt/pgbak2/:/mnt/pgbak/"
1919
- "/usr/share/postgres/12_1/tsearch_data:/usr/share/postgresql/tsearch_data"
20+
- "/var/lib/pgsql/12_1/app_db_init_sql:/app_db_init_sql"
2021
ports:
2122
- "5433:5432"
2223
environment:
2324
ENV_DB_VALUE: DEV
2425
APP_DB: "My_db"
26+
APP_DB_PASSWORD: qweasdzxc
2527
# POSTGRES_INITDB_ARGS: "--locale=ru_RU.UTF8 --data-checksums"
2628
POSTGRES_PASSWORD: qweasdzxc
2729
POSTGRES_HOST_AUTH_METHOD: trust

0 commit comments

Comments
 (0)