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 will be available on 127.0.0.1:27017 without authentication. As you connect to a database, MongoDB will create it for you.

Note that MongoDB's default configuration only listens for connections on IPv4, whereas some platforms (like Ruby) default to connecting via IPv6 if your Mongo connection is configured to use localhost. This is why we recommend connecting on 127.0.0.1 rather than localhost.


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) を次のように利用できます。

  • Host name: 127.0.0.1 (avoid using localhost, as some clients will attempt to connect via a local "Unix socket", which will not work in Pipelines)
  • Port: 3306
  • Default database: pipelines
  • User: test_user, password: test_user_password. (The root user of MySQL will not be accessible.)

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) を次のように利用できます。

  • Host name: 127.0.0.1 (avoid using localhost, as some clients will attempt to connect via a local "Unix socket", which will not work in Pipelines)
  • Port: 3306
  • Default database: pipelines
  • User: root, password: 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 の次のイメージはデータベースを含み、他の言語やデータベース用に拡張可能です。

最終更新日 2019 年 3 月 15 日

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

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