|
1 | 1 | #!UseOBSRepositories |
2 | 2 | #!BuildVersion: %!{PG_VERSION}-%!{PPG_RELEASE} |
3 | | -#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_VERSION}-17-%!{PPG_RELEASE}-<RELEASE> |
4 | | -#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_VERSION}-17-%!{PPG_RELEASE} |
5 | | -#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_VERSION}-17 |
6 | | -#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_MAJOR_VERSION}-17 |
| 3 | +#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_VERSION}-%!{PPG_RELEASE}-<RELEASE> |
| 4 | +#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_VERSION}-%!{PPG_RELEASE} |
| 5 | +#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_VERSION} |
| 6 | +#!BuildTag: percona-distribution-postgresql-upgrade:%!{PG_MAJOR_VERSION} |
7 | 7 |
|
8 | 8 | FROM percona-ubi-minimal:latest |
9 | 9 |
|
10 | 10 | LABEL name="Percona Distribution for PostgreSQL Upgrade" \ |
11 | | - description="Upgrade container for Percona Distribution for PostgreSQL. Facilitates major version upgrades from PostgreSQL 17 to %!{PG_MAJOR_VERSION} using pg_upgrade." \ |
| 11 | + description="Upgrade container for Percona Distribution for PostgreSQL. Facilitates major version upgrades from PostgreSQL 14, 15, 16, or 17 to %!{PG_MAJOR_VERSION} using pg_upgrade." \ |
12 | 12 | vendor="Percona" \ |
13 | 13 | summary="Percona Distribution for PostgreSQL major version upgrade container" \ |
14 | 14 | maintainer="Percona Development <info@percona.com>" \ |
@@ -70,26 +70,38 @@ RUN set -ex; \ |
70 | 70 | percona-pg_cron_${PPG_MAJOR_VERSION}; \ |
71 | 71 | microdnf clean all |
72 | 72 |
|
73 | | -# Install PG%!{PG_PREV_MAJOR_VERSION} (source version for upgrade) with all extensions including PostGIS |
| 73 | +# Install every older PG major version this image can upgrade from, with the extensions |
| 74 | +# that exist for that version, so a single image can upgrade from any of them to |
| 75 | +# ${PPG_MAJOR_VERSION}. This block is expanded by percona-obs's sync tooling |
| 76 | +# (expand_for_blocks) into one literal, fully-expanded RUN per version before the file |
| 77 | +# ever reaches OBS — OBS's Dockerfile scanner statically resolves package names and |
| 78 | +# cannot expand a real shell loop variable, so what OBS sees is never this block itself. |
| 79 | +{{FOR pg_version IN 17,16,15,14}} |
74 | 80 | RUN set -ex; \ |
75 | 81 | microdnf install -y \ |
76 | | - percona-postgresql%!{PG_PREV_MAJOR_VERSION}-server \ |
77 | | - percona-postgresql%!{PG_PREV_MAJOR_VERSION}-contrib \ |
78 | | - percona-pg_tde%!{PG_PREV_MAJOR_VERSION} \ |
79 | | - percona-pg_stat_monitor%!{PG_PREV_MAJOR_VERSION} \ |
80 | | - percona-pg_repack%!{PG_PREV_MAJOR_VERSION} \ |
81 | | - percona-pgaudit%!{PG_PREV_MAJOR_VERSION} \ |
82 | | - percona-pgaudit%!{PG_PREV_MAJOR_VERSION}_set_user \ |
83 | | - percona-pgvector_%!{PG_PREV_MAJOR_VERSION} \ |
84 | | - percona-postgresql%!{PG_PREV_MAJOR_VERSION}-llvmjit \ |
85 | | - percona-pgvector_%!{PG_PREV_MAJOR_VERSION}-llvmjit \ |
86 | | - percona-wal2json%!{PG_PREV_MAJOR_VERSION} \ |
87 | | - percona-postgis35_%!{PG_PREV_MAJOR_VERSION} \ |
88 | | - percona-postgis35_%!{PG_PREV_MAJOR_VERSION}-client \ |
89 | | - percona-postgis35_%!{PG_PREV_MAJOR_VERSION}-gui \ |
90 | | - percona-postgis35_%!{PG_PREV_MAJOR_VERSION}-llvmjit \ |
91 | | - percona-postgis35_%!{PG_PREV_MAJOR_VERSION}-utils \ |
92 | | - percona-pg_cron_%!{PG_PREV_MAJOR_VERSION}; \ |
| 82 | + percona-postgresql${pg_version}-server \ |
| 83 | + percona-postgresql${pg_version}-contrib \ |
| 84 | + percona-postgresql${pg_version}-llvmjit \ |
| 85 | + percona-pg_stat_monitor${pg_version} \ |
| 86 | + percona-pg_repack${pg_version} \ |
| 87 | + percona-pgaudit${pg_version} \ |
| 88 | + percona-pgaudit${pg_version}_set_user \ |
| 89 | + percona-pgvector_${pg_version} \ |
| 90 | + percona-pgvector_${pg_version}-llvmjit \ |
| 91 | + percona-wal2json${pg_version} \ |
| 92 | + percona-postgis35_${pg_version} \ |
| 93 | + percona-postgis35_${pg_version}-client \ |
| 94 | + percona-postgis35_${pg_version}-gui \ |
| 95 | + percona-postgis35_${pg_version}-llvmjit \ |
| 96 | + percona-postgis35_${pg_version}-utils \ |
| 97 | + percona-pg_cron_${pg_version}; \ |
| 98 | + microdnf clean all |
| 99 | +{{ENDFOR}} |
| 100 | + |
| 101 | +# pg_tde is only packaged standalone from PG17 onward, so it's installed separately |
| 102 | +# here rather than inside the loop above. |
| 103 | +RUN set -ex; \ |
| 104 | + microdnf install -y percona-pg_tde17; \ |
93 | 105 | microdnf clean all; \ |
94 | 106 | rm -rf /var/cache/dnf /var/cache/yum |
95 | 107 |
|
|
0 commit comments