CNG: PostgreSQL assets include server in UBI
Summary
It seems that at least in the UBI images, the gitlab-postgresql
assets actually include the server binaries. We don't need the server, only the client binaries, their libraries, and the compilation headers as necessary (?)
Details
https://gitlab.com/gitlab-org/build/CNG/-/jobs/2925233139
$ tar tf postgresql.tgz | grep bin
./usr/local/postgresql/bin/
./usr/local/postgresql/bin/pg_upgrade
./usr/local/postgresql/bin/pg_recvlogical
./usr/local/postgresql/bin/pg_isready
./usr/local/postgresql/bin/reindexdb
./usr/local/postgresql/bin/pg_waldump
./usr/local/postgresql/bin/pg_test_fsync
./usr/local/postgresql/bin/pg_config
./usr/local/postgresql/bin/createdb
./usr/local/postgresql/bin/dropuser
./usr/local/postgresql/bin/ecpg
./usr/local/postgresql/bin/pg_checksums
./usr/local/postgresql/bin/clusterdb
./usr/local/postgresql/bin/pg_verifybackup
./usr/local/postgresql/bin/postmaster
./usr/local/postgresql/bin/pgbench
./usr/local/postgresql/bin/pg_ctl
./usr/local/postgresql/bin/pg_dump
./usr/local/postgresql/bin/pg_test_timing
./usr/local/postgresql/bin/pg_amcheck
./usr/local/postgresql/bin/pg_dumpall
./usr/local/postgresql/bin/postgres
./usr/local/postgresql/bin/pg_controldata
./usr/local/postgresql/bin/pg_receivewal
./usr/local/postgresql/bin/pg_restore
./usr/local/postgresql/bin/vacuumdb
./usr/local/postgresql/bin/pg_rewind
./usr/local/postgresql/bin/pg_resetwal
./usr/local/postgresql/bin/pg_basebackup
./usr/local/postgresql/bin/dropdb
./usr/local/postgresql/bin/psql
./usr/local/postgresql/bin/initdb
./usr/local/postgresql/bin/createuser
./usr/local/postgresql/bin/pg_archivecleanup
./usr/local/postgresql/share/timezone/Asia/Harbin
./usr/local/postgresql/include/server/lib/binaryheap.h
./usr/local/postgresql/include/server/optimizer/geqo_recombination.h
./usr/local/postgresql/include/server/catalog/binary_upgrade.h
./usr/local/postgresql/include/server/common/unicode_combining_table.h
This stems from the use of make world && make install-world
in our Dockerfile(s).
Actionable
-
Only compile and store the parts of the PostgreSQL outputs that we need.