Gitlab Docker upgrade pg_trgm extension not found

Jedes mal, wenn ich meinen Git-Server upgraden wollte spuckte dieser folgende Fehlermeldung aus:

gitlab_1     | /home/git/gitlab/db/migrate/20160226114608_add_trigram_indexes_for_searching.rb:10:in `up'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:611:in `exec_migration'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:592:in `block (2 levels) in migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:591:in `block in migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:590:in `migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:768:in `migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:1046:in `ddl_transaction'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:997:in `execute_migration_in_transaction'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:959:in `block in migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `each'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:823:in `up'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:801:in `migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
gitlab_1     | /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
gitlab_1     | Tasks: TOP => db:migrate
gitlab_1     | (See full trace by running task with --trace)
dockergitlab_gitlab_1 exited with code 0
postgresql_1 | ERROR:  permission denied to create extension "pg_trgm"
postgresql_1 | HINT:  Must be superuser to create this extension.
Docker_1 | STATEMENT:  CREATE EXTENSION IF NOT EXISTS "pg_trgm"
postgresql_1 | ERROR:  permission denied to create extension "pg_trgm"
postgresql_1 | HINT:  Must be superuser to create this extension.
postgresql_1 | STATEMENT:  CREATE EXTENSION IF NOT EXISTS "pg_trgm"
postgresql_1 | ERROR:  permission denied to create extension "pg_trgm"
postgresql_1 | HINT:  Must be superuser to create this extension.
postgresql_1 | STATEMENT:  CREATE EXTENSION IF NOT EXISTS "pg_trgm"
postgresql_1 | ERROR:  permission denied to create extension "pg_trgm"
postgresql_1 | HINT:  Must be superuser to create this extension.
postgresql_1 | STATEMENT:  CREATE EXTENSION IF NOT EXISTS "pg_trgm"
postgresql_1 | ERROR:  permission denied to create extension "pg_trgm"
postgresql_1 | HINT:  Must be superuser to create this extension.
postgresql_1 | STATEMENT:  CREATE EXTENSION IF NOT EXISTS "pg_trgm"

Dies bedeutet, dass im postgresql_1 – Container die „pg_trgm“ Erweiterung fehlt.

Diese kann aber relativ selber nachinstalliert werden. Dazu startet Ihr als erstes wieder Euer Gitlab

docker-compose up

nun oeffnet ein neues Terminalfenster. Und schaut nach wie der Docker-Container bei euch heißt

docker ps

Als ausgabe bekommt Ihr dann etwas in dieser Art:

CONTAINER ID    IMAGE                           COMMAND                  CREATED             STATUS         PORTS       NAMES
xxxxxxxxxxxx    sameersbn/gitlab:8.7.0          "/sbin/entrypoint.sh "   12 minutes ago      Up 4 seconds   xxx         dockergitlab_gitlab_1
xxxxxxxxxxxx    sameersbn/postgresql:9.4-20     "/sbin/entrypoint.sh"    14 minutes ago      Up 5 seconds   xxxx/tcp    dockergitlab_postgresql_1
xxxxxxxxxxxx    sameersbn/redis:latest          "/sbin/entrypoint.sh"    14 minutes ago      Up 6 seconds   xxxx/tcp    dockergitlab_redis_1

Nun startet Ihr eine Bash in dockergitlab_postgresql_1

docker exec -it dockergitlab_postgresql_1 bash

Dort gebt Ihr dann folgendes ein:

sudo -u postgres psql -d gitlabhq_production -c "CREATE EXTENSION pg_trgm;"

Als Ausgabe erhaltet Ihr

CREATE EXTENSION

Nun könnt Ihr die Bash im Docker-Container wieder verlassen und das Terminal-Fenster schließen.

exit

Euer Gitlab (Docker-Compose) könnt Ihr mit der Tastenkombination

[Strg] [c]

stoppen und anschließend nochmals starten

docker-compose up

Nun wartet kurz und schaut dann mithilfe des Browsers nach ob Ihr den Gitlab-Server erreichen könnt. Ist dies der Fall beendet Docker-Compose

[Strg] [c]

und startet es ohne Ausgabe neu

docker-compose start

Nach ein paar Sekunden/Minuten sollte der Server wieder erreichbar sein.

Teilen macht Spaß:

Posted by Daniel Schwarz

danielschwarz
Daniel Schwarz, macht irgendwas mit Computern in der Nähe von Würzburg, schreibt hier privat auf BlackIT um anderen bei Problemen zu helfen. Macht er mal nichts mit Computern so engagiert er sich ehrenamtlich bei der freiwilligen Feuerwehr in Randersacker und den Maltesern in Würzburg.

Letzte Beiträge: