Bitbucket Pipelines でデータベースを使用してテストする

データベースをテストする際には、サービス コンテナを使用して、データベース サービスをリンクされたコンテナ内で実行することをおすすめします。Docker の Docker Hub では、一般的なデータベースに対応する多数の公式イメージが提供されています。

このページでは、次のデータベース タイプに接続するための bitbucket-pipelines.yml ファイルの例を示しています。

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

Bitbucket Pipelines でサービスとデータベースを使用する」もご参照ください。

また、必要なデータベースを含む Docker イメージを使用することもできます。このページの「データベースを構成済みの Docker イメージを使用する」をご参照ください。

MongoDB

Docker Hub の Mongo イメージを使用します。

image: node:10.15.0
pipelines: 
  default: 
    - step: 
        script: 
          - npm install 
          - npm test 
        services: 
          - mongo 

definitions: 
  services: 
    mongo: 
      image: mongo

MongoDB は 127.0.0.1:27017 で認証なしで利用できます。データベースに接続すると、MongoDB が代理で作成します。

MongoDB の既定構成は IPv4 の接続のみをリッスンしますが、Mongo 接続で localhost を使用するように構成している場合、Ruby などのプラットフォームは既定で IPv6 経由での通信を行うことにご注意ください。接続先として localhost ではなく 127.0.0.1 を推奨しているのはこのためです。


MySQL – テスト ユーザー

Docker Hub の MySQL イメージを使用します。

image: node:10.15.0 
pipelines: 
  default: 
    - step: 
        script: 
          - npm install 
          - npm test 
        services: 
          - mysql

definitions: 
  services: 
    mysql: 
      image: mysql:5.7 
      variables: 
        MYSQL_DATABASE: 'pipelines'
        MYSQL_RANDOM_ROOT_PASSWORD: 'yes' 
        MYSQL_USER: 'test_user'
        MYSQL_PASSWORD: 'test_user_password'

MySQL への接続

上述の例を使用した場合、MySQL (バージョン 5.7) を次のように利用できます。

  • ホスト名: 127.0.0.1 (localhost の使用は避けます。一部のクライアントがローカルの "Unix socket" 経由での接続を試みるが、これは Pipelinesでは動作しないためです)。
  • Port: 3306
  • 既定のデータベース: pipelines
  • ユーザー: test_user、パスワード: test_user_password (MySQL の root ユーザーにアクセスすることはできません)。

pipelines データベースにテーブルやスキームを入力する必要があります。基盤となるデータベースをさらに構成する必要がある場合、詳細について公式の Docker Hub イメージをご参照ください。


MySQL – root ユーザー

Docker Hub の MySQL イメージを使用します。

image: node:10.15.0
pipelines: 
  default: 
    - step: 
        script: 
          - npm install 
          - npm test 
        services: 
          - mysql 

definitions: 
  services: 
    mysql: 
      image: mysql:5.7 
      variables: 
        MYSQL_DATABASE: 'pipelines' 
        MYSQL_ROOT_PASSWORD: 'let_me_in'

MySQL への接続

上述の例を使用した場合、MySQL (バージョン 5.7) を次のように利用できます。

  • ホスト名: 127.0.0.1 (localhost の使用は避けます。一部のクライアントがローカルの "Unix socket" 経由での接続を試みるが、これは Pipelinesでは動作しないためです。)
  • ポート: 3306
  • 既定のデータベース: pipelines
  • ユーザー: root、パスワード: let_me_in

pipelines データベースにテーブルやスキームを入力する必要があります。基盤となるデータベースをさらに構成する必要がある場合、詳細について公式の Docker Hub イメージをご参照ください。


PostgreSQL – 既定ユーザー

Docker Hub の Postgres イメージを使用します。

image: node:10.15.0
pipelines: 
  default: 
    - step: 
        script: 
          - npm install 
          - npm test 
        services: 
          - postgres 

definitions: 
  services: 
    postgres: 
      image: postgres

PostgreSQL は localhost:5432 で、既定データベース "postgres"、ユーザー "postgres"、パスワードはなしで利用できます。postgres データベースにテーブルやスキーマのデータを入力するか、使用するデータベースを新しく作成する必要があります。基盤となるデータベースをさらに構成する必要がある場合、詳細について公式の Docker Hub イメージをご参照ください。


PostgreSQL – テスト ユーザー

Docker Hub の Postgres イメージを使用します。

image: node:10.15.0
pipelines: 
  default: 
    - step: 
        script: 
          - npm install
          - npm test
        services: 
          - postgres

definitions: 
  services: 
    postgres: 
      image: postgres 
      variables: 
        POSTGRES_DB: 'pipelines' 
        POSTGRES_USER: 'test_user'
        POSTGRES_PASSWORD: 'test_user_password'

PostgreSQL は localhost:5432 で、既定データベース "pipelines"、ユーザー "test_user"、パスワード "test_user_password" で利用できます。pipelines データベースにテーブルやスキームを入力する必要があります。基盤となるデータベースをさらに構成する必要がある場合、詳細について公式の Docker Hub イメージをご参照ください。


Redis

Docker Hub の Redis イメージを使用します。

image: node:10.15.0
pipelines: 
  default: 
    - step: 
        script: 
          - npm install 
          - npm test 
        services: 
          - redis 

definitions: 
  services: 
    redis: 
      image: redis

Redis は localhost:6379 で認証なしで利用できます。


Cassandra

Docker Hub の Cassandra イメージを使用します。

image: node:10.15.0 
pipelines: 
  default: 
    - step:
        script: 
          - npm install 
          - sleep 10 # wait for cassandra 
          - npm test 
        services: 
          - cassandra 

definitions: 
  services: 
    cassandra: 
      image: cassandra 
      variables: 
        MAX_HEAP_SIZE: '512M' # Need to restrict the heapsize or else Cassandra will OOM 
        HEAP_NEWSIZE: '128M'

Cassandra は localhost:9042 で利用できます。


データベースを構成済みの Docker イメージを使用する

データベース用に独立したコンテナを実行する手順 (推奨手順) の代替案として、データベースをインストール済みの Docker イメージを使用できます。Node や Ruby の次のイメージはデータベースを含み、他の言語やデータベース用に拡張可能です。

Last modified on Mar 15, 2019

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.