2021年2月19日金曜日

Gitlab でデータベースを外部のサーバに設定する方法 (コンテナ編)

概要

前回はバイナリインストールした PostgreSQL に移行する方法を紹介しました
今回はコンテナとして立ち上げた PostgreSQL に移行する方法を紹介します

環境

  • GitLab Enterprise Edition 13.8.0-ee
  • PostgreSQL 13.2

コンテナで PostgreSQL 起動

  • mkdir /mnt/postgresql
  • docker network create db
  • docker run -d --name postgres --network db -p 5432:5432 -e POSTGRES_PASSWORD=xxxxxxxxxx -e PGDATA=/var/lib/postgresql/data/pgdata -v /mnt/postgresql:/var/lib/postgresql/data postgres

gitlab ユーザの作成と gitlabhq_production データベースの作成

  • docker run -it --rm --network db postgres psql -h postgres -U postgres
create user gitlab with password 'xxxxxxxxxx';
create database gitlabhq_production owner gitlab;
alter role gitlab with superuser;

gitlab.rb の編集

  • vim /etc/gitlab/gitlab.rb
postgresql['enable'] = false
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'unicode'
gitlab_rails['db_host'] = '192.168.100.10'
gitlab_rails['db_password'] = 'xxxxxxxxxx'

192.168.100.10 は PostgreSQL コンテナを起動したインスタンスの IP です

再起動

  • gitlab-ctl reconfigure

おまけ: SQL をコンテナ起動時に実行する方法

  • vim init.sql
create user gitlab with password 'xxxxxxxxxx';
create database gitlabhq_production owner gitlab;
alter role gitlab with superuser;
  • docker run -d --name postgres --network db -p 5432:5432 -e POSTGRES_PASSWORD=asdfghjkl -e PGDATA=/var/lib/postgresql/data/pgdata -v $(pwd)/init.sql:/docker-entrypoint-initdb.d/init.sql -v /mnt/postgresql:/var/lib/postgresql/data postgres

0 件のコメント:

コメントを投稿