Skip to content

Commit 962e863

Browse files
author
matthias
committed
commit stuff
1 parent 8f6215e commit 962e863

File tree

19 files changed

+1451
-90
lines changed

19 files changed

+1451
-90
lines changed

Makefile

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11

22
# Define Default if Values not exist
3-
BASE_IMAGE ?= rockylinux:9-minimal
3+
BASE_IMAGE ?= rockylinux:9.1-minimal
44
BASEOS ?= rocky9
55
IMAGE_REPOSITORY ?= docker.io
6-
IMAGE_PATH ?= cybertec-os-container
7-
PG_MAJOR ?= 15
8-
PG_VERSION ?= 15.0
6+
IMAGE_PATH ?= cybertec-pg-container
7+
PGVERSION ?= 15
8+
PGVERSION_FULL ?= 15.2
99
OLD_PG_VERSIONS ?= 10 11 12 13 14
1010
PATRONI_VERSION ?= 2.1.4
1111
PGBACKREST_VERSION ?= 2.41
1212
POSTGIS_VERSION ?= 3.2
1313
PACKAGER ?= dnf
1414
BUILD ?= 0
15-
IMAGE_TAG ?= $(BASEOS)-$(PG_VERSION)-$(BUILD)
16-
POSTGIS_IMAGE_TAG ?= $(BASEOS)-$(PG_VERSION)-$(POSTGIS_VERSION)-$(BUILD)
15+
IMAGE_TAG ?= $(BASEOS)-$(PGVERSION_FULL)-$(BUILD)
16+
POSTGIS_IMAGE_TAG ?= $(BASEOS)-$(PGVERSION_FULL)-$(POSTGIS_VERSION)-$(BUILD)
1717

1818
# Settings for the Build-Process
1919
BUILDWITH ?= docker
20-
ROOTPATH = $(GOPATH)/src/github.com/cybertec/cybertec-os-container
20+
ROOTPATH = $(GOPATH)/src/github.com/cybertec/cybertec-pg-container
2121
ifndef ROOTPATH
22-
export ROOTPATH=$(GOPATH)/src/github.com/cybertec/cybertec-os-container
22+
export ROOTPATH=$(GOPATH)/src/github.com/cybertec/cybertec-pg-container
2323
endif
2424

2525
# Build Images
@@ -28,12 +28,13 @@ all: base pgbackrest postgres
2828
base: base
2929
pgbackrest: pgbackrest
3030
postgres: base postgres
31-
postgres-stage: postgres-stage
31+
postgres-stage: base postgres-stage
32+
exporter: exporter
3233

3334
base-build:
3435
docker build $(ROOTPATH) \
3536
--file $(ROOTPATH)/docker/base/Dockerfile \
36-
--tag cybertec-os-container/base:0.0.$(BUILD) \
37+
--tag cybertec-pg-container/base:0.0.$(BUILD) \
3738
--build-arg BASE_IMAGE \
3839
--build-arg IMAGE_REPOSITORY \
3940
--build-arg BASEOS \
@@ -44,22 +45,22 @@ base: base-build;
4445
pgbackrest-build:
4546
docker build $(ROOTPATH) \
4647
--file $(ROOTPATH)/docker/pgbackrest/Dockerfile \
47-
--tag cybertec-os-container/pgbackrest:0.0.$(BUILD) \
48+
--tag cybertec-pg-container/pgbackrest:0.0.$(BUILD) \
4849
--build-arg BASE_IMAGE \
4950
--build-arg IMAGE_REPOSITORY \
5051
--build-arg BASEOS \
5152
--build-arg PACKAGER \
5253
--build-arg CONTAINERSUITE \
5354
--build-arg BUILD \
5455
--build-arg PGBACKREST_VERSION \
55-
--build-arg PG_MAJOR
56+
--build-arg PGVERSION
5657

5758
pgbackrest: pgbackrest-build;
5859

5960
postgres-build:
6061
docker build $(ROOTPATH) \
6162
--file $(ROOTPATH)/docker/postgres/Dockerfile \
62-
--tag cybertec-os-container/postgres:$(PG_MAJOR).0.$(BUILD) \
63+
--tag cybertec-pg-container/postgres:$(PGVERSION_FULL)-$(BETA)$(BUILD) \
6364
--build-arg BASE_IMAGE \
6465
--build-arg IMAGE_REPOSITORY \
6566
--build-arg BASEOS \
@@ -68,16 +69,32 @@ postgres-build:
6869
--build-arg BUILD \
6970
--build-arg PATRONI_VERSION \
7071
--build-arg PGBACKREST_VERSION \
71-
--build-arg PG_VERSION \
7272
--build-arg OLD_PG_VERSIONS \
73-
--build-arg PG_MAJOR
73+
--build-arg PGVERSION
7474

7575
postgres: postgres-build
7676

7777
postgres-stage-build:
7878
docker build $(ROOTPATH) \
79-
--file $(ROOTPATH)/docker/postgres_stage/Dockerfile \
80-
--tag cybertec-os-container/postgres-stage:$(PG_MAJOR).0.$(BUILD) \
79+
--file $(ROOTPATH)/docker/postgres-stage/Dockerfile \
80+
--tag cybertec-pg-container/postgres-stage:$(PGVERSION_FULL)-$(BETA)$(BUILD) \
81+
--build-arg BASE_IMAGE \
82+
--build-arg IMAGE_REPOSITORY \
83+
--build-arg BASEOS \
84+
--build-arg PACKAGER \
85+
--build-arg CONTAINERSUITE \
86+
--build-arg BUILD \
87+
--build-arg PATRONI_VERSION \
88+
--build-arg PGBACKREST_VERSION \
89+
--build-arg OLD_PG_VERSIONS \
90+
--build-arg PGVERSION
91+
92+
postgres-stage: postgres-stage-build
93+
94+
exporter-build:
95+
docker build $(ROOTPATH) \
96+
--file $(ROOTPATH)/docker/exporter/Dockerfile \
97+
--tag cybertec-pg-container/exporter:0.1.$(BUILD) \
8198
--build-arg BASE_IMAGE \
8299
--build-arg IMAGE_REPOSITORY \
83100
--build-arg BASEOS \
@@ -86,8 +103,7 @@ postgres-stage-build:
86103
--build-arg BUILD \
87104
--build-arg PATRONI_VERSION \
88105
--build-arg PGBACKREST_VERSION \
89-
--build-arg PG_VERSION \
90106
--build-arg OLD_PG_VERSION \
91-
--build-arg PG_MAJOR
107+
--build-arg PGVERSION
92108

93-
postgres-stage: postgres-stage-build
109+
exporter: exporter-build

docker/base/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ RUN ${PACKAGER} -y install --nodocs \
2828
glibc-langpack-en \
2929
&& ${PACKAGER} -y clean all ;
3030

31+
#Enable CRB-Repo (Powertools)
32+
RUN ${PACKAGER} -y config-manager --set-enabled crb
3133
#Add PostgreSQL-Repo to Base
3234
RUN ${PACKAGER} install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm && ${PACKAGER} -y update && ${PACKAGER} -y clean all
3335
#RUN dnf -qy module disable postgresql

docker/exporter/Dockerfile

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
ARG CONTAINERSUITE
2+
ARG BUILD
3+
4+
FROM ${CONTAINERSUITE}/base:0.0.${BUILD}
5+
6+
# Dockerfile specific informations
7+
ARG PACKAGER
8+
ARG BASEOS
9+
ARG PGBACKREST_VERSION
10+
ARG PG_MAJOR
11+
12+
RUN if [ "$BASEOS" = "ubi8" ] ; then \
13+
${PACKAGER} -y install --nodocs \
14+
shadow-utils \
15+
tar \
16+
bzip2 \
17+
lz4 \
18+
#crunchy-backrest-${BACKREST_VER} \
19+
&& ${PACKAGER} -y clean all ; \
20+
else \
21+
${PACKAGER} -y install --nodocs \
22+
--setopt=skip_missing_names_on_install=False \
23+
bzip2 \
24+
lz4 \
25+
nano \
26+
git \
27+
go \
28+
dumb-init \
29+
&& ${PACKAGER} -y clean all ; \
30+
fi
31+
32+
RUN git clone https://github.com/prometheus-community/postgres_exporter.git && cd postgres_exporter && make build
33+
COPY launcher/exporter/launch.sh /
34+
COPY scripts/exporter/queries/ /postgres_exporter/queries
35+
36+
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
37+
38+
CMD ["/bin/sh", "/launch.sh", "init"]
39+
#CMD ["/bin/sh", "/scripts/postgres/promote.sh"]

docker/newpg/Dockerfile

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
ARG BASE_IMAGE=ubuntu:22.04
2+
ARG PGVERSION=15
3+
ARG TIMESCALEDB="1.7.5 2.3.1 2.9.2"
4+
ARG DEMO=false
5+
ARG COMPRESS=false
6+
ARG ADDITIONAL_LOCALES=
7+
ARG CONTAINERSUITE
8+
ARG BUILD
9+
10+
11+
FROM ${CONTAINERSUITE}/base:0.0.${BUILD} as base
12+
13+
ARG ADDITIONAL_LOCALES
14+
15+
COPY build_scripts/locales.sh /builddeps/
16+
17+
RUN bash /builddeps/locales.sh
18+
19+
20+
FROM ${CONTAINERSUITE}/base:0.0.${BUILD} as dependencies-builder
21+
22+
ARG DEMO
23+
24+
ENV WALG_VERSION=v2.0.1
25+
26+
COPY build_scripts/dependencies.sh /builddeps/
27+
28+
COPY dependencies/debs /builddeps/
29+
30+
RUN bash /builddeps/dependencies.sh
31+
32+
33+
FROM ${CONTAINERSUITE}/base:0.0.${BUILD} as builder-false
34+
35+
ARG DEMO
36+
ARG ADDITIONAL_LOCALES
37+
38+
COPY build_scripts/prepare.sh build_scripts/locales.sh /builddeps/
39+
40+
RUN bash /builddeps/prepare.sh
41+
42+
COPY --from=base /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.18
43+
44+
COPY cron_unprivileged.c dependencies/src /builddeps/
45+
COPY build_scripts/base.sh /builddeps/
46+
COPY --from=dependencies-builder /builddeps/*.deb /builddeps/
47+
48+
ARG PGVERSION
49+
ARG TIMESCALEDB
50+
ARG TIMESCALEDB_APACHE_ONLY=true
51+
ARG TIMESCALEDB_TOOLKIT=true
52+
ARG COMPRESS
53+
ARG PGOLDVERSIONS="10 11 12 13 14"
54+
ARG WITH_PERL=false
55+
56+
ARG DEB_PG_SUPPORTED_VERSIONS="$PGOLDVERSIONS $PGVERSION"
57+
58+
# Install PostgreSQL, extensions and contribs
59+
ENV POSTGIS_VERSION=3.3 \
60+
POSTGIS_LEGACY=3.2 \
61+
BG_MON_COMMIT=241d8134e4dda4ffe6f21d40abf8d544d78bc9d8 \
62+
PG_AUTH_MON_COMMIT=439697fe2980cf48f1760f45e04c2d69b2748e73 \
63+
PG_MON_COMMIT=34c35a86e6dea26930bf1f770048cea2c695b80b \
64+
SET_USER=REL3_0_0 \
65+
PLPROFILER=REL4_2_1 \
66+
PG_PROFILE=4.1 \
67+
PAM_OAUTH2=v1.0.1 \
68+
PLANTUNER_COMMIT=800d81bc85da64ff3ef66e12aed1d4e1e54fc006 \
69+
PG_PERMISSIONS_COMMIT=314b9359e3d77c0b2ef7dbbde97fa4be80e31925 \
70+
PG_TM_AUX_COMMIT=51cf42f6043608919802fcc48458471d0ea3a127
71+
72+
WORKDIR /builddeps
73+
RUN bash base.sh
74+
75+
# Install wal-g
76+
COPY --from=dependencies-builder /builddeps/wal-g /usr/local/bin/
77+
78+
COPY build_scripts/patroni_wale.sh build_scripts/compress_build.sh /builddeps/
79+
80+
# Install patroni and wal-e
81+
ENV PATRONIVERSION=3.0.0
82+
ENV WALE_VERSION=1.1.1
83+
84+
WORKDIR /
85+
86+
RUN bash /builddeps/patroni_wale.sh
87+
88+
RUN if [ "$COMPRESS" = "true" ]; then bash /builddeps/compress_build.sh; fi
89+
90+
91+
FROM scratch as builder-true
92+
COPY --from=builder-false / /
93+
94+
95+
FROM builder-${COMPRESS}
96+
97+
LABEL maintainer="Polina Bungina <[email protected]>"
98+
99+
ARG PGVERSION
100+
ARG TIMESCALEDB
101+
ARG DEMO
102+
ARG COMPRESS
103+
104+
EXPOSE 5432 8008 8080
105+
106+
ENV LC_ALL=en_US.utf-8 \
107+
PATH=$PATH:/usr/lib/postgresql/$PGVERSION/bin \
108+
PGHOME=/home/postgres \
109+
RW_DIR=/run \
110+
TIMESCALEDB=$TIMESCALEDB \
111+
DEMO=$DEMO
112+
113+
ENV WALE_ENV_DIR=$RW_DIR/etc/wal-e.d/env \
114+
LOG_ENV_DIR=$RW_DIR/etc/log.d/env \
115+
PGROOT=$PGHOME/pgdata/pgroot
116+
117+
ENV PGDATA=$PGROOT/data \
118+
PGLOG=$PGROOT/pg_log
119+
120+
ENV USE_OLD_LOCALES=false
121+
122+
WORKDIR $PGHOME
123+
124+
COPY motd /etc/
125+
COPY runit /etc/service/
126+
COPY pgq_ticker.ini $PGHOME/
127+
COPY build_scripts/post_build.sh /builddeps/
128+
129+
RUN sh /builddeps/post_build.sh && rm -rf /builddeps/
130+
131+
COPY scripts bootstrap major_upgrade /scripts/
132+
COPY launch.sh /
133+
134+
CMD ["/bin/sh", "/launch.sh", "init"]

docker/pgbackrest/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ FROM ${CONTAINERSUITE}/base:0.0.${BUILD}
77
ARG PACKAGER
88
ARG BASEOS
99
ARG PGBACKREST_VERSION
10-
ARG PG_MAJOR
10+
ARG PGVERSION
1111

1212
RUN if [ "$BASEOS" = "ubi8" ] ; then \
1313
${PACKAGER} -y install --nodocs \
@@ -26,7 +26,7 @@ else \
2626
openssh-server \
2727
bzip2 \
2828
lz4 \
29-
postgresql${PG_MAJOR}-server \
29+
postgresql${PGVERSION}-server \
3030
pgbackrest-${PGBACKREST_VERSION} \
3131
nano \
3232
&& ${PACKAGER} -y clean all ; \
@@ -67,7 +67,7 @@ RUN curl -LO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl && chmod
6767
RUN chown -R postgres:postgres /opt/pgbackrest \
6868
/backrestrepo /home/postgres/pgdata
6969

70-
ENV PATH=$PATH:/usr/pgsql-$PG_MAJOR/bin
70+
ENV PATH=$PATH:/usr/pgsql-$PGVERSION/bin
7171
COPY launcher/pgbackrest/launch.sh /
7272

7373
VOLUME ["sshd", "/home/postgres/pgdata", "/backrestrepo"]

0 commit comments

Comments
 (0)