Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

postgres (PostgreSQL) 15.1 (Debian 15.1-1.pgdg110+1) image no longer exists #2944

Closed
shora0 opened this issue May 22, 2024 · 5 comments
Closed

Comments

@shora0
Copy link

shora0 commented May 22, 2024

Postgres (PostgreSQL) 15.1 (Debian 15.1-1.pgdg110+1) image not found at https://www.docker.com/

@kkimurak
Copy link
Contributor

Maybe you are on wrong repo to ask such question.

You may need to search it on hub.docker.com : https://hub.docker.com/_/postgres/tags?page=&page_size=&ordering=&name=15.1

@shora0
Copy link
Author

shora0 commented May 22, 2024

We have previously used Sameersbn/postgresql:laster to pull the image version. Enter the container to view the version: postgres (PostgreSQL) 15.1 (Debian 15.1-1.pgdg110+1)

@kkimurak
Copy link
Contributor

By using postgres:15.1, you can get 15.1 (Debian 15.1-1.pgdg110+1). What is exact progrem for you?

$ docker run --rm postgres:15.1 psql --version
psql (PostgreSQL) 15.1 (Debian 15.1-1.pgdg110+1)

The image, sameersbn/postgresql is available on hub.docker.com: https://hub.docker.com/r/sameersbn/postgresql/tags
You can use sameersbn/postgresql:latest as well.
Current sameersbn/postgresql:latest tag is mostly same as sameersbn/postgresql:15-20230628 which provides psql (PostgreSQL) 15.3 (Ubuntu 15.3-1.pgdg22.04+1) but may works as well.

$ docker run -it --rm sameersbn/postgresql:latest sh -c "/sbin/entrypoint.sh 2>/dev/null & sleep 5; psql --version;"
Initializing datadir...
Initializing certdir...
Initializing logdir...
Initializing rundir...
Setting resolv.conf ACLs...
Initializing database...
Configuring hot standby...
‣ Setting postgresql.conf parameter: wal_level = 'hot_standby'
‣ Setting postgresql.conf parameter: max_wal_senders = '16'
‣ Setting postgresql.conf parameter: checkpoint_segments = '8'
‣ Setting postgresql.conf parameter: wal_keep_segments = '32'
‣ Setting postgresql.conf parameter: hot_standby = 'on'
‣ Setting postgresql.conf parameter: data_directory = '/var/lib/postgresql/15/main'
‣ Setting postgresql.conf parameter: log_directory = '/var/log/postgresql'
‣ Setting postgresql.conf parameter: log_filename = 'postgresql-15-main.log'
‣ Setting postgresql.conf parameter: ssl = 'off'
Starting PostgreSQL 15...
psql (PostgreSQL) 15.3 (Ubuntu 15.3-1.pgdg22.04+1)

Note that it is not the topic of questions to ask here.

@shora0
Copy link
Author

shora0 commented May 22, 2024

The previous docker-compose.yml configuration file image specified the gitlab version as image: sameersbn/gitlab:latest, sameersbn/postgresql:latest. The postgresql version downloaded at that time was postgres (PostgreSQL) 15.1 (Debian 15.1-1.pgdg110+1), gitlab The downloaded image version at that time was gitlab:15.7.0. If docker-compose.yml specified the postgresql version as postgres:15.1, the postgres container would not start. Now I want to upgrade gitlab to the latest version

postgresql:
restart: always
#image: sameersbn/postgresql:15-20230628
image: sameersbn/postgresql:latest
#image: postgres:15.1
#image: sameersbn/postgresql:12-20200524
volumes:
- ./postgresql-data:/var/lib/postgresql
environment:
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm,btree_gist

gitlab:
restart: always
#image: sameersbn/gitlab:15.7.0
image: sameersbn/gitlab:latest
depends_on:
- redis
- postgresql
ports:
- "10443:443"

@kkimurak
Copy link
Contributor

OK your problem is to upgrade from sameersbn/gitlab:15.7.0 to sameersbn/gitlab:latest (currently it is sameersbn/gitlab:17.0.0), right?

You cannot upgrade from 15.7.0 to 17.0.0 directly. You need to relay several versions and wait for the background migration to complete on each relayed version. See https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?current=15.7.0&distro=docker&edition=ce and check the versions you have to relay.

Note that some versions are missing for sameersbn/gitlab. You can use previous minor release (16.1.5 instead of 16.1.6, for example). See #2938 (comment) for more details.

For postgresql: I have never tested but I heard there are some issue running gitlab with postgresql 15.x. See #2859 for example.
Except this concern, you should be able to use sameersbn/postgresql:15-20230628.

I just tested the combination of postgresql 15.x and gitlab 17.0.0 by following step:

  • Use copy of docker-compose.yml from this repository. They use sameersbn/gitlab:17.0.0, sameersbn/postgresql:14-20230628 and redis:6.2.

  • docker compose up -d : images will be pulled if not exists

  • Wait for a while

  • Open GitLab Web UI, check versions in admin dashboard (that waspostgresql 14.8)

  • docke compose down

  • edit docker-compose.yml to use sameersbn/postgresql:15-20230628

  • docker compose up -d postgresql : launch only postgresql to perform migration from 14.x to 15.x (this is special feature provided that sameersbn/postgresql provides)

    here is a log:
     Initializing datadir...
     Initializing certdir...
     Initializing logdir...
     Initializing rundir...
     Setting resolv.conf ACLs...
     Initializing database...
     ‣ Migrating PostgreSQL 14 data to 15...
     ‣ Installing PostgreSQL 14...
     W: http://apt.postgresql.org/pub/repos/apt/dists/jammy-pgdg/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
     debconf: delaying package configuration, since apt-utils is not installed
     ‣ Migration in progress. Please be patient...Performing Consistency Checks
     -----------------------------
     Checking cluster versions                                   ok
     Checking database user is the install user                  ok
     Checking database connection settings                       ok
     Checking for prepared transactions                          ok
     Checking for system-defined composite types in user tables  ok
     Checking for reg* data types in user tables                 ok
     Checking for contrib/isn with bigint-passing mismatch       ok
     Creating dump of global objects                             ok
     Creating dump of database schemas                           ok
     Checking for presence of required libraries                 ok
     Checking database user is the install user                  ok
     Checking for prepared transactions                          ok
     Checking for new cluster tablespace directories             ok
    
     If pg_upgrade fails after this point, you must re-initdb the
     new cluster before continuing.
    
     Performing Upgrade
     ------------------
     Analyzing all rows in the new cluster                       ok
     Freezing all rows in the new cluster                        ok
     Deleting files from new pg_xact                             ok
     Copying old pg_xact to new server                           ok
     Setting oldest XID for new cluster                          ok
     Setting next transaction ID and epoch for new cluster       ok
     Deleting files from new pg_multixact/offsets                ok
     Copying old pg_multixact/offsets to new server              ok
     Deleting files from new pg_multixact/members                ok
     Copying old pg_multixact/members to new server              ok
     Setting next multixact ID and offset for new cluster        ok
     Resetting WAL archives                                      ok
     Setting frozenxid and minmxid counters in new cluster       ok
     Restoring global objects in the new cluster                 ok
     Restoring database schemas in the new cluster               ok
     Copying user relation files                                 ok
     Setting next OID for new cluster                            ok
     Sync data directory to disk                                 ok
     Creating script to delete old cluster                       ok
     Checking for extension updates                              notice
     
     Your installation contains extensions that should be updated
     with the ALTER EXTENSION command.  The file
         update_extensions.sql
     when executed by psql by the database superuser will update
     these extensions.
     
     
     Upgrade Complete
     ----------------
     Optimizer statistics are not transferred by pg_upgrade.
     Once you start the new server, consider running:
         /usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
     
     Running this script will delete the old cluster's data files:
         ./delete_old_cluster.sh
     
     Configuring hot standby...
     ‣ Setting postgresql.conf parameter: wal_level = 'hot_standby'
     ‣ Setting postgresql.conf parameter: max_wal_senders = '16'
     ‣ Setting postgresql.conf parameter: checkpoint_segments = '8'
     ‣ Setting postgresql.conf parameter: wal_keep_segments = '32'
     ‣ Setting postgresql.conf parameter: hot_standby = 'on'
     ‣ Setting postgresql.conf parameter: data_directory = '/var/lib/postgresql/15/main'
     ‣ Setting postgresql.conf parameter: log_directory = '/var/log/postgresql'
     ‣ Setting postgresql.conf parameter: log_filename = 'postgresql-15-main.log'
     ‣ Setting postgresql.conf parameter: ssl = 'off'
     Creating database user: gitlab
     Creating database: gitlabhq_production...
     ‣ Loading pg_trgm extension...
     ‣ Loading btree_gist extension...
     ‣ Granting access to gitlab user...
     Starting PostgreSQL 15...
     2024-05-22 10:55:38.561 UTC [1] LOG:  starting PostgreSQL 15.3 (Ubuntu 15.3-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit
     2024-05-22 10:55:38.561 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
     2024-05-22 10:55:38.561 UTC [1] LOG:  listening on IPv6 address "::", port 5432
     2024-05-22 10:55:38.570 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
     2024-05-22 10:55:38.593 UTC [2534] LOG:  database system was shut down at 2024-05-22 10:55:38 UTC
     2024-05-22 10:55:38.616 UTC [1] LOG:  database system is ready to accept connections
    
  • docker compose up -d to launch redis and gitlab

  • Wait for a while

  • Open GitLab Web UI and check admin dashboard : the version of postgresql should be upgrade (15.3)

Both worked fine for me, whether gitlab was completely new or restored from backups from several years of production.
I have never faced issue (because I have never tested) but I think it's safer to update gitlab to the latest version possible and then update postgresql.

Good luck.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants