PHP と Bitbucket Pipelines

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このガイドでは、Bitbucket Pipelines を使用して、Docker コンテナで PHP を使用するソフトウェア プロジェクトをビルドおよびテストする方法について説明します。

If you'd prefer to quickly import a demo repository with a working pipeline to experiment with, have a look at our demo php repo.
Instructions to import the demo repo

For this demo, all you need to do is import this repo and enable pipelines to get your first pipeline to run!

  1. Import this repository by visiting bitbucket.org and log in. Then:

    Import gif

  2. On the left navigation bar, click Pipelines and scroll down to view the bitbucket-pipelines.yml file. Click Enable

    Enable gif

  3. Watch your build run!

    Build gif

Note: Bitbucket Pipelines includes fifty free minutes per account, at the time of writing. You can check your team or account's minutes usage for the month by clicking your Avatar > Bitbucket settings > Plan details.




If you'd like to set it up by hand,most of the configuration happens in the bitbucket-pipelines.yml file that Pipelines uses to define the build.


Docker で PHP のバージョンを指定する

Bitbucket Pipelines は、構成ファイルの最初に指定したイメージを使用し、すべてのビルドを Docker コンテナで実行します。Docker Hub にあるいずれかの公式 PHP Docker イメージを使用することで、Bitbucket Pipelines で簡単に PHP を使用できます。 

たとえば、次のように bitbucket-pipelines.yml ファイルの先頭でイメージを指定して PHP 7.1.1 を使用できます。

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          - php -v

異なるバージョンの PHP を使用したい場合、Docker イメージのタグを変更します。次の例は、PHP 5.6.30 のコンテナを開始します。

image: php:5.6.30

サポートされている全 PHP バージョンと対応するイメージ タグの一覧については、https://hub.docker.com/_/php/ を参照してください。

アトラシアンのオンライン バリデーターでご使用の bitbucket-pipelines.yml ファイルをチェックできます

依存関係をインストールする

Composer を使用して依存関係を管理する

ビルド スクリプトの一環として Composer をインストールおよび使用できます。

For example, copying and pasting the following instructions to your bitbucket-pipelines.yml file specifies monolog as a dependency:

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y unzip
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
          - composer require monolog/monolog
          - composer install

Pear を使用して依存関係を管理する

Pear は PHP Docker イメージにバンドルされており、次のようにビルド スクリプトで直接使用して依存関係をインストールできます。

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          - pear -V
          - pear install pear/PHP_CodeSniffer

PHP 拡張機能のインストールと有効化

PHP Docker イメージ には拡張機能のインストールと構成を容易にする次の 3 つのヘルパー スクリプト コマンドが付属しています。

  • docker-php-ext-configure: This command allows you to provide the custom arguments for an extension.
  • docker-php-ext-install: Use this command to install new extensions in your container.
  • docker-php-ext-enable: This command can be used to enable PHP extensions.

For instance if you wanted to install the gd extension as part of your build process you could do so with the following bitbucket-pipelines.yml:

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          # Installing first the libraries necessary to configure and install gd
          - apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
          # Now we can configure and install the extension
          - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
          - docker-php-ext-install -j$(nproc) gd

You can also use PECL and the docker-php-ext-enable helper script to install extension:

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          # Installing first the libraries necessary to configure and install memcached
          - apt-get update && apt-get install -y libmemcached-dev zlib1g-dev
          # Now we can configure and install the extension
          - pecl install memcached-2.2.0
          - docker-php-ext-enable memcached

データベース

Bitbucket Pipelines では、サービスを定義して適切な段階でインスタンス化することで、パイプラインの実行中に追加のサービスを起動できます。

ご使用のデータベースで使用する際に役立つように、bitbucket-pipeline.ymlの一覧を用意しています。

テスト

PHPUnit でのテスト

You can use Composer to install PHPUnit and run your test. If you have a composer.json file mentioning your PHPUnit dependency checked into your repository you just need to run composer install before invoking the phpunit command to execute your tests:

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y unzip
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
          - composer install
          - vendor/bin/phpunit

composer.json ファイルがない場合、ビルド スクリプトで PHPUnit を指定することによって、PHPUnit をインストールできます。

bitbucket-pipelines.yml
image: php:7.1.1
pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y unzip
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
          - composer require phpunit/phpunit
          - vendor/bin/phpunit


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

最終更新日 2019 年 1 月 2 日

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

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