Skip to content

Commit 6400907

Browse files
committed
updates dockerfile
1 parent 3294307 commit 6400907

2 files changed

Lines changed: 96 additions & 104 deletions

File tree

bootstrap/docker/postgres/Dockerfile

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,13 @@ RUN pip3 install patroni[kubernetes$EXTRAS]==$PATRONI_VERSION
9595

9696
RUN mkdir /usr/lib/postgresql
9797
ENV PATHBACKUP = $PATH
98+
#ENV PATH=$PATH:/usr/pgsql-$PGVERSION/bin
99+
#RUN echo $PATH
98100
# Install pam_oauth2.so
99101
RUN git clone -b $PAM_OAUTH2 --recurse-submodules https://github.com/zalando-pg/pam-oauth2.git \
100102
&& make -C pam-oauth2 install \
103+
#&& curl -sL https://github.com/zalando-pg/bg_mon/archive/$BG_MON_COMMIT.tar.gz | tar xz \
104+
#&& curl -sL https://github.com/zalando-pg/pg_auth_mon/archive/$PG_AUTH_MON_COMMIT.tar.gz | tar xz \
101105
&& curl -sL https://github.com/cybertec-postgresql/pg_permissions/archive/$PG_PERMISSIONS_COMMIT.tar.gz | tar xz \
102106
&& curl -sL https://github.com/x4m/pg_tm_aux/archive/$PG_TM_AUX_COMMIT.tar.gz | tar xz \
103107
&& curl -sL https://github.com/zubkov-andrei/pg_profile/archive/$PG_PROFILE.tar.gz | tar xz \
@@ -106,6 +110,7 @@ RUN git clone -b $PAM_OAUTH2 --recurse-submodules https://github.com/zalando-pg/
106110
&& git clone https://github.com/dimitri/pgextwlist.git \
107111
&& git clone https://github.com/powa-team/pg_stat_kcache.git \
108112
&& git clone https://github.com/crunchydata/pgnodemx \
113+
#&& git clone https://github.com/pgq/pgqd.git \
109114
\
110115
&& ${PACKAGER} -y install --nodocs --noplugins --setopt=install_weak_deps=0 postgresql${PGVERSION} libevent-devel brotli-devel libbrotli \
111116
&& ${PACKAGER} -y clean all\
@@ -117,11 +122,30 @@ RUN git clone -b $PAM_OAUTH2 --recurse-submodules https://github.com/zalando-pg/
117122
&& for version in $PG_SUPPORTED_VERSIONS; do \
118123
${PACKAGER} -y update && \
119124
${PACKAGER} -y install postgresql${version}-pltcl \
125+
# postgresql${version}-dirtyread \
126+
# postgresql${version}-extra-window-functions \
127+
# postgresql${version}-first-last-agg \
128+
# postgresql${version}-hll \
129+
# postgresql${version}-hypopg \
120130
pgaudit*${version} \
131+
# postgresql${version}-pg-checksums \
132+
# postgresql${version}-pgl-ddl-deploy \
133+
# postgresql${version}-pglogical \
134+
# postgresql${version}-pglogical-ticker \
135+
# postgresql${version}-pgq-node \
136+
# postgresql${version}-pldebugger \
137+
# postgresql${version}-pllua \
138+
# postgresql${version}-plpgsql-check \
139+
# postgresql${version}-plproxy \
140+
# postgresql${version}-repack \
141+
# postgresql${version}-wal2json \
142+
#&& ${PACKAGER} -y clean all; \
121143
# Install PostgreSQL binaries, contrib, plproxy and multiple pl's
122144
&& ${PACKAGER} -y install -y postgresql${version}-contrib \
123145
postgresql${version}-plpython3 postgresql${version}-devel \
124146
pg_cron_${version} \
147+
#postgresql-${version}-pgq3 \
148+
#postgresql-${version}-pg-stat-kcache $EXTRAS \
125149
# Modify for using origial-spilo scripts
126150
&& ln -s /usr/pgsql-${version} /usr/lib/postgresql/${version} \
127151
&& export PATH=$PATHBACKUP:/usr/pgsql-${version}/bin \
@@ -151,14 +175,6 @@ RUN git clone -b $PAM_OAUTH2 --recurse-submodules https://github.com/zalando-pg/
151175
&& ${PACKAGER} -y clean all; \
152176
done
153177

154-
RUN ${PACKAGER} -y install --nodocs --noplugins --setopt=install_weak_deps=0 glibc-devel glibc-static \
155-
&& ${PACKAGER} -y clean all; \
156-
157-
RUN mkdir /package && cd /package && wget http://smarden.org/runit/runit-2.1.2.tar.gz && tar -xvzf runit-2.1.2.tar.gz && rm runit-2.1.2.tar.gz && cd admin/runit-2.1.2 && package/install
158-
159-
# Modify for using origial-spilo scripts
160-
RUN ln -s /usr/local/bin/dumb-init /usr/bin/dumb-init && ln -s /usr/local/bin/runsvdir /usr/bin/runsvdir
161-
162178
# Clean Up git-repos
163179
RUN rm -rf /pgextwlist \
164180
&& rm -rf /pg_stat_kcache \
@@ -231,6 +247,14 @@ RUN rm /etc/pgbackrest.conf && rm -rf /var/spool/pgbackrest;
231247
COPY scripts bootstrap major_upgrade /scripts/
232248
COPY launcher/postgres/launch.sh /
233249

250+
RUN ${PACKAGER} -y install --nodocs --noplugins --setopt=install_weak_deps=0 \
251+
glibc-devel glibc-static
252+
253+
RUN mkdir /package && cd /package && wget http://smarden.org/runit/runit-2.1.2.tar.gz && tar -xvzf runit-2.1.2.tar.gz && rm runit-2.1.2.tar.gz && cd admin/runit-2.1.2 && package/install
254+
255+
# Modify for using origial-spilo scripts
256+
RUN ln -s /usr/local/bin/dumb-init /usr/bin/dumb-init && ln -s /usr/local/bin/runsvdir /usr/bin/runsvdir
257+
234258
#RUN curl -LO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl && chmod +x kubectl && mv ./kubectl /usr/local/bin/
235259

236260
USER 26

docker/postgres/Dockerfile

Lines changed: 64 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ RUN if [ "$BASEOS" = "ubi8" ] ; then \
3636
python3 \
3737
python3-pip \
3838
python3-psycopg2 \
39-
python3-psutil \
40-
python3-requests \
41-
python3-etcd \
42-
python3-pyyaml \
43-
python3-setuptools \
39+
# python3-psutil \
40+
# python3-requests \
41+
# python3-etcd \
42+
# python3-pyyaml \
43+
# python3-setuptools \
4444
git \
4545
patchutils \
4646
binutils \
@@ -74,11 +74,11 @@ else \
7474
python3 \
7575
python3-pip \
7676
python3-psycopg2 \
77-
python3-psutil \
78-
python3-requests \
79-
#python3-etcd \
80-
python3-pyyaml \
81-
python3-setuptools \
77+
# python3-psutil \
78+
# python3-requests \
79+
# python3-etcd \
80+
# python3-pyyaml \
81+
# python3-setuptools \
8282
git \
8383
patchutils \
8484
binutils \
@@ -115,8 +115,7 @@ ENV PATHBACKUP = $PATH
115115
#&& curl -sL https://github.com/zalando-pg/bg_mon/archive/$BG_MON_COMMIT.tar.gz | tar xz \
116116
#&& curl -sL https://github.com/zalando-pg/pg_auth_mon/archive/$PG_AUTH_MON_COMMIT.tar.gz | tar xz \
117117

118-
#pip3.11 install 'PyYAML<6.0' setuptools pystache loader dumb-init kazoo meld3 boto \
119-
RUN pip3 install 'PyYAML<6.0' setuptools pystache loader dumb-init kazoo meld3 boto python-etcd --upgrade \
118+
RUN pip3 install 'PyYAML<6.0' setuptools pystache loader dumb-init kazoo meld3 boto python-etcd psutil requests --upgrade \
120119
&& pip3 install patroni[kubernetes$EXTRAS]==$PATRONI_VERSION --upgrade \
121120
&& mkdir /usr/lib/postgresql \
122121
&& curl -sL https://github.com/cybertec-postgresql/pg_permissions/archive/$PG_PERMISSIONS_COMMIT.tar.gz | tar xz \
@@ -139,31 +138,12 @@ RUN pip3 install 'PyYAML<6.0' setuptools pystache loader dumb-init kazoo meld3 b
139138
&& for version in $PG_SUPPORTED_VERSIONS; do \
140139
${PACKAGER} -y update && \
141140
${PACKAGER} -y install postgresql${version}-pltcl \
142-
# postgresql${version}-dirtyread \
143-
# postgresql${version}-extra-window-functions \
144-
# postgresql${version}-first-last-agg \
145-
# postgresql${version}-hll \
146-
# postgresql${version}-hypopg \
147141
pgaudit*${version} \
148142
credcheck_*${version} \
149-
# postgresql${version}-pg-checksums \
150-
# postgresql${version}-pgl-ddl-deploy \
151-
# postgresql${version}-pglogical \
152-
# postgresql${version}-pglogical-ticker \
153-
# postgresql${version}-pgq-node \
154-
# postgresql${version}-pldebugger \
155-
# postgresql${version}-pllua \
156-
# postgresql${version}-plpgsql-check \
157-
# postgresql${version}-plproxy \
158-
# postgresql${version}-repack \
159-
# postgresql${version}-wal2json \
160-
#&& ${PACKAGER} -y clean all; \
161143
# Install PostgreSQL binaries, contrib, plproxy and multiple pl's
162144
&& ${PACKAGER} -y install -y postgresql${version}-contrib \
163145
postgresql${version}-plpython3 postgresql${version}-devel \
164146
pg_cron_${version} \
165-
#postgresql-${version}-pgq3 \
166-
#postgresql-${version}-pg-stat-kcache $EXTRAS \
167147
# Modify for using origial-spilo scripts
168148
&& ln -s /usr/pgsql-${version} /usr/lib/postgresql/${version} \
169149
&& export PATH=$PATHBACKUP:/usr/pgsql-${version}/bin \
@@ -189,15 +169,23 @@ RUN pip3 install 'PyYAML<6.0' setuptools pystache loader dumb-init kazoo meld3 b
189169
done \
190170
#&& cd /pgextwlist && make clean && make && make install \
191171
#&& cd /pg_stat_kcache && make clean && make && make install \
192-
&& cd /pgnodemx && make USE_PGXS=1 clean && make USE_PGXS=1 && make USE_PGXS=1 install \
172+
&& cd /pgnodemx && make USE_PGXS=1 clean && make USE_PGXS=1 && make USE_PGXS=1 install; \
193173
#&& cd /pgqd && ./configure --prefix=/opt && make && make install \
194-
&& ${PACKAGER} -y clean all; \
195-
done
174+
done \
175+
&& ${PACKAGER} -y clean all \
176+
&& rm -rf /pgextwlist /pg_stat_kcache /pgnodemx;
177+
178+
COPY runit-2.1.2.tar.gz /package/runit-2.1.2.tar.gz
179+
180+
RUN ${PACKAGER} -y install --nodocs --noplugins --setopt=install_weak_deps=0 glibc-devel glibc-static \
181+
&& ${PACKAGER} -y clean all \
182+
&& mkdir -p /package \
183+
&& cd /package && tar -xvzf runit-2.1.2.tar.gz && rm runit-2.1.2.tar.gz \
184+
&& cd admin/runit-2.1.2 && package/install \
185+
&& ln -s /usr/local/bin/runsvdir /usr/bin/runsvdir \
186+
&& ${PACKAGER} -y remove $(rpm -qa "*-devel") \
187+
&& ${PACKAGER} -y clean all;
196188

197-
# Clean Up git-repos
198-
RUN rm -rf /pgextwlist \
199-
&& rm -rf /pg_stat_kcache \
200-
&& rm -rf /pgnodemx ;
201189

202190
EXPOSE 5432 8008 8080
203191
ENV LC_ALL=en_US.utf-8 \
@@ -220,70 +208,50 @@ COPY motd /etc/
220208

221209
COPY runit /etc/runit/runsvdir/default/
222210
COPY pgq_ticker.ini $PGHOME/
223-
RUN rm -rf /etc/service
224-
225-
RUN mkdir /home/postgres/pgdata && chown -R postgres:postgres /home/postgres/pgdata && chmod -R g=u /home/postgres/pgdata
226-
227-
RUN sed -i "s|/var/lib/pgsql.*|$PGHOME:/bin/bash|" /etc/passwd \
228-
&& chown -R postgres:postgres $PGHOME $PGHOME/pgdata $RW_DIR \
229-
&& rm -fr /var/spool/cron /var/tmp \
230-
&& mkdir -p /var/spool \
231-
&& ln -s $RW_DIR/cron /var/spool/cron \
232-
&& ln -s $RW_DIR/tmp /var/tmp \
233-
&& for d in /etc/runit/runsvdir/default/*; do \
234-
chmod 755 $d/* \
235-
&& ln -s /run/supervise/$(basename $d) $d/supervise; \
236-
done \
237-
&& ln -snf $RW_DIR/service /etc/service \
238-
#&& ln -s $RW_DIR/pam.d-postgresql /etc/pam.d/postgresql \
239-
&& ln -s $RW_DIR/postgres.yml $PGHOME/postgres.yml \
240-
&& ln -s $RW_DIR/.bash_history /root/.bash_history \
241-
&& ln -s $RW_DIR/postgresql/.bash_history $PGHOME/.bash_history \
242-
&& ln -s $RW_DIR/postgresql/.psql_history $PGHOME/.psql_history \
243-
&& ln -s $RW_DIR/etc $PGHOME/etc \
244-
&& for d in $PGHOME /root; do \
245-
d=$d/.config/patroni \
246-
&& mkdir -p $d \
247-
&& ln -s $PGHOME/postgres.yml $d/patronictl.yaml; \
248-
done \
249-
&& sed -i 's/set compatible/set nocompatible/' /etc/vimrc \
250-
&& echo "PATH=\"$PATH\"" > /etc/environment \
251-
&& for e in TERM=linux LC_ALL=C.UTF-8 LANG=C.UTF-8 EDITOR=editor; \
252-
do echo "export $e" >> /etc/bash.bashrc; \
253-
done \
254-
&& ln -s /etc/skel/.bashrc $PGHOME/.bashrc \
255-
&& echo "source /etc/motd" >> /root/.bashrc \
256-
# Allow users in the root group to access the following files and dirs
257-
&& if [ "$COMPRESS" != "true" ]; then \
258-
chmod 664 /etc/passwd \
259-
&& chmod o+r /etc/shadow \
260-
&& chgrp -R 0 $PGHOME $RW_DIR \
261-
&& chmod -R g=u $PGHOME $RW_DIR \
262-
&& usermod -a -G root postgres; \
263-
fi
211+
RUN rm -rf /etc/service && mkdir /home/postgres/pgdata && chown -R postgres:postgres /home/postgres/pgdata && chmod -R g=u /home/postgres/pgdata \
212+
&& sed -i "s|/var/lib/pgsql.*|$PGHOME:/bin/bash|" /etc/passwd \
213+
&& chown -R postgres:postgres $PGHOME $PGHOME/pgdata $RW_DIR \
214+
&& rm -fr /var/spool/cron /var/tmp \
215+
&& mkdir -p /var/spool \
216+
&& ln -s $RW_DIR/cron /var/spool/cron \
217+
&& ln -s $RW_DIR/tmp /var/tmp \
218+
&& for d in /etc/runit/runsvdir/default/*; do \
219+
chmod 755 $d/* \
220+
&& ln -s /run/supervise/$(basename $d) $d/supervise; \
221+
done \
222+
&& ln -snf $RW_DIR/service /etc/service \
223+
#&& ln -s $RW_DIR/pam.d-postgresql /etc/pam.d/postgresql \
224+
&& ln -s $RW_DIR/postgres.yml $PGHOME/postgres.yml \
225+
&& ln -s $RW_DIR/.bash_history /root/.bash_history \
226+
&& ln -s $RW_DIR/postgresql/.bash_history $PGHOME/.bash_history \
227+
&& ln -s $RW_DIR/postgresql/.psql_history $PGHOME/.psql_history \
228+
&& ln -s $RW_DIR/etc $PGHOME/etc \
229+
&& for d in $PGHOME /root; do \
230+
d=$d/.config/patroni \
231+
&& mkdir -p $d \
232+
&& ln -s $PGHOME/postgres.yml $d/patronictl.yaml; \
233+
done \
234+
&& sed -i 's/set compatible/set nocompatible/' /etc/vimrc \
235+
&& echo "PATH=\"$PATH\"" > /etc/environment \
236+
&& for e in TERM=linux LC_ALL=C.UTF-8 LANG=C.UTF-8 EDITOR=editor; \
237+
do echo "export $e" >> /etc/bash.bashrc; \
238+
done \
239+
&& ln -s /etc/skel/.bashrc $PGHOME/.bashrc \
240+
&& echo "source /etc/motd" >> /root/.bashrc \
241+
# Allow users in the root group to access the following files and dirs
242+
&& if [ "$COMPRESS" != "true" ]; then \
243+
chmod 664 /etc/passwd \
244+
&& chmod o+r /etc/shadow \
245+
&& chgrp -R 0 $PGHOME $RW_DIR \
246+
&& chmod -R g=u $PGHOME $RW_DIR \
247+
&& usermod -a -G root postgres; \
248+
fi
264249

265250
# Remove default pgbackrest-config and spool-path
266251
RUN rm /etc/pgbackrest.conf && rm -rf /var/spool/pgbackrest;
267252

268253
COPY scripts bootstrap major_upgrade /scripts/
269254
COPY launcher/postgres/launch.sh /
270-
271-
RUN ${PACKAGER} -y install --nodocs --noplugins --setopt=install_weak_deps=0 \
272-
glibc-devel glibc-static \
273-
&& mkdir -p /package;
274-
275-
COPY runit-2.1.2.tar.gz /package/runit-2.1.2.tar.gz
276-
#wget -nv http://smarden.org/runit/runit-2.1.2.tar.gz \
277-
278-
RUN cd /package && tar -xvzf runit-2.1.2.tar.gz && rm runit-2.1.2.tar.gz \
279-
&& cd admin/runit-2.1.2 && package/install \
280-
&& ${PACKAGER} -y remove $(rpm -qa "*-devel") \
281-
&& ${PACKAGER} -y clean all ;
282-
283-
# Modify for using origial-spilo scripts
284-
# RUN ln -s /usr/local/bin/dumb-init /usr/bin/dumb-init &&
285-
RUN ln -s /usr/local/bin/runsvdir /usr/bin/runsvdir
286-
287255
#RUN curl -LO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl && chmod +x kubectl && mv ./kubectl /usr/local/bin/
288256

289257
# Cleanup

0 commit comments

Comments
 (0)