【GitLab 公式 を訳してみた】PostgreSQLを使う

法律: IT 解説記事 GitLab CI コンテナ フノス(訳者) マニュアル

GitLab Documentation>GitLab Continuous Integration (GitLab CI)>CIサービス設定例> PostgreSQLを使う 

  データベースにPostgreSQLを採用しているアプリケーションはたくさんあります。もちろん、アプリケーションのテストを行う際にはデータベースも一緒にテストできる状態にしておかなくてはなりません。
 これから、MySQLをDockerで運用する方法と、GitLab Runnerのシェルエクゼキュータで運用する方法との、2種類をお教えします。
 

  DockerエクゼキュータからPostgreSQLを使う

  もしもGitLab RunnerでDockerエクゼキュータを使っている場合には、基本的にこの設定は完了していることになっています。
 

  まず、「.gitlab-ci.yml」ファイルに次の設定を加えます。

======================
services:
 - postgres:latest

variables:
POSTGRES_DB: nice_marmot
POSTGRES_USER: runner
POSTGRES_PASSWORD: ""
======================

  次に、アプリケーションのデータベースとして使うために必要な設定をします。

======================
Host: postgres
User: runner
Password:
Database: nice_marmot
======================

  なぜここで「Host: postgres」としたのかについては、こちらの『Dockerイメージを使う』というページの『サービスをjobと連携させる方法』という節が参考になると思われます。

  ホストにするDockerイメージは、Docker Hubに公開されているものについては全て使用可能です。

  たとえば、Docker Hub上で公開されている「PostgreSQL 9.3」というサービスなら、「postgres:9.3」として設定コンフィグに記載します。

  今回使用しているpostgresイメージでは、環境変数がいくつか用意されています。

  このような説明は、Docker Hub側の説明書に掲載されていることがほとんどですので、ぜひ入念にご確認ください。


  シェル・エクゼキュータからPostgreSQLを使う

  これは手動で、GitLab Runnerに設定することとなりますが、PostgreSQLをシェルエクゼキュータから利用する方法があります。

 

  まずは、PostgreSQLサーバーをインストールします。

======================
sudo apt-get install -y postgresql postgresql-client libpq-dev
======================

  次に、 PostgreSQLにログインできるようにユーザーアカウントを作成します。

======================
sudo -u postgres psql -d template1
======================

  その後に、そのアプリケーションに対応したランナーのユーザーを作成したら、
以下のコマンドでなるべく強固なパスワード($passwordに相当)を設定します。

  注:template1=#」と先頭に書いてありますが、これはPostgreSQLプロンプトに出現する目印ですので、ご自分ではタイプなさらないでください。

======================
template1=# CREATE USER runner WITH PASSWORD '$password' CREATEDB;
======================

  注:データベースを作成するコマンド(CREATEDB)は、特権ユーザーのみが発令させられます。 上記の方法は、特権ユーザーによってデータベースが作成されることを念頭に、フレームワークのテストやデータベースの開始、終了をしていくことを想定しています。
 

  データベースを作成して、ユーザーがランナーを使えるように特権を与えるコマンド:

======================
template1=# CREATE DATABASE nice_marmot OWNER runner;
======================

  すべての用事が済んで、データベースのセッションを終了させるときのコマンド:

======================
template1=# \q
======================

  なお、データベースがまだ作り立てのときには、接続が確実に行われているかどうかをご確認ください。

======================
psql -U runner -h localhost -d nice_marmot -W
======================

  注:md5認証をご利用の場合は、ローカルホストの接続に「psql」を呼び出す必要があります。
 省略すると、アクセスを拒絶されます。ご注意ください。
 

  最後に、データベースとして使うために、アプリケーション側の設定を行います。

======================
Host: localhost
User: runner
Password: $password
Database: nice_marmot
======================

 

  例示プロジェクト

  もし、オープンソースプロジェクトの作成をお考えで、GitLab.comで作業する予定がある方は、こちらのExample PostgreSQL Projectをお使いいただけます。ここで使用するランナーは共有ランナーです。

  この例示プロジェクトに対して何か思うところはありませんか?「これじゃ物足りない…」、「もうちょっとこの機能が欲しい」とか。
 それだったら、ぜひともこのプロジェクトをフォークして、変更をかけてコミット&プッシュしていただけると嬉しいです。

 変更は、しばらくすると共有ランナーに検知され、jobが開始されます。

 Edit this page

 2018-03-23 21:37:13 / Hnoss
原文サイトを表示
[ 原文 ] https://docs.gitlab.com/ee/ci/services/postgres.html
原文ページプロジェクト並びにドキュメントファイルは、MIT Licenseのもと公開されています。(URL:https://gitlab.com/gitlab-com/gitlab-docs/blob/master/LICENSE) この記事の文章は、訳者の判断によりCreative Commons BY (version 3.0) を適用するものとします。