Bitbucket Cloud の使用を開始する
Bitbucket Cloud を初めてお使いですか? 新規ユーザー用のガイドをご利用ください。
この簡単なスタート ガイドでは、Bitbucket Pipelines を使用して、Docker コンテナで Laravel 5 を使用するプロジェクトをビルドおよびテストする方法について説明します。
実際に動作するパイプラインを持つデモ リポジトリをすぐインポートする場合、「デモ用の laravel リポジトリ」を参照してください。
手動でセットアップしたい場合、構成の大部分は Pipelines がビルドを定義するために使用する bitbucket-pipelines.yml ファイル内で行います。
Bitbucket Pipelines はビルド構成を bitbucket-pipelines.yml という名前の YAML ファイルに保管します。
bitbucket-pipelines.yml ファイルはご使用のリポジトリ内にあります。
リポジトリへのプッシュが実行されると、Pipelines は Docker イメージでビルドを実行します。
bitbucket-pipelines.yml ファイルで、プロジェクトで必要とされる依存関係を指定します。
https://github.com/laravel/quickstart-basic.git リポジトリを Bitbucket にインポートします。
Bitbucket で [リポジトリ] タブを選択してから、[リポジトリを作成] > [リポジトリをインポート] の順に選択します。
ここでは、リポジトリ名として laravel-quickstart-basic を使用しています。
新しいリポジトリで、[Pipelines] をクリックして、[最初のパイプラインを作成] をクリックします。
新しい Bitbucket リポジトリをご使用のローカル マシンにクローンします。
1
git clone git@bitbucket.org:<username>/laravel-quickstart-basic.git
ここでは既定のパイプラインを構成します。このパイプラインでは以下を行います。
7.2-fpm Docker イメージの使用
OS パッケージからの依存関係 (git、curl) のインストール
mcrypt および mysql の PHP 拡張機能のインストール
Composer のインストール
Composer を使用して PHP 依存関係をインストール
使用するキャッシュ、セッション データ ストア、およびデータベースを制御する変数を設定
Artisan を使用してデータベースの移行およびアプリケーションの開始をバックグラウンドで実行
アプリケーションを開始するために 5 秒間スリープ
curl を使用し、すべてのものが接続され、動作していることを確認
PHPunit の実行
以下は、これらをすべて実行する構成ファイルです。
bitbucket-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
image: php:7.2-fpm
pipelines:
default:
- step:
script:
- apt-get update && apt-get install -qy git curl libmcrypt-dev mysql-client
- yes | pecl install mcrypt-1.0.1
- docker-php-ext-install pdo_mysql
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer install
- ln -f -s .env.pipelines .env
- php artisan migrate
- php artisan serve &
- sleep 5
- ./vendor/bin/phpunit
- curl -vk http://localhost:8000
services:
- mysql
definitions:
services:
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: 'homestead'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: 'homestead'
MYSQL_PASSWORD: 'secret'
Atlassian のオンライン バリデーターでご使用の bitbucket-pipelines.yml ファイルを確認できます。
Laravel は RDBMS (既定では MySQL) を使用してアプリケーションの状態を保存します。
コミュニティが管理するイメージからコンテナを実行するために Bitbucket Pipelines サービス コンテナを使用できます。
MySQL の定義は少し難易度が高くなります。
bitbucket-pipelines.yml スニペット
1
2
3
4
5
6
7
8
9
definitions:
services:
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: 'homestead'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: 'homestead'
MYSQL_PASSWORD: 'secret'
アトラシアンでは、MySQL 用に次の変数を定義しています: MYSQL_DATABASE、MYSQL_RANDOM_ROOT_PASSWORD、MYSQL_USER、MYSQL_PASSWORD。
これらは、MySQL の初期化プロセスに対して、"homestead" という名前のデータベースと、ユーザー "homestead"、パスワード "secret" を作成し、root ユーザーにはランダムなパスワードを割り当てるように支持します。これらの値は config/database.php の内容と一致している必要があります。
config/database.php
1
2
3
4
5
6
7
8
9
10
11
12
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
その後、以下に示すように、リポジトリのルートに .env.pipelines ファイルを作成します。bitbucket-pipelines.yml ファイルはこれを、プロジェクトのルート内の既定の .env にコピーします。
.env.pipelines
1
2
3
4
5
6
7
APP_ENV=local
APP_KEY=ThisIsThe32CharacterKeySecureKey
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
リポジトリにコミットする前に .env.pipelines ファイルを追加する必要があります。
1
git add .env.pipelines
ソース コントロールにコミットする資格情報はテスト目的でのみ使用し、本番システムとの共有は行わないことをおすすめします。
Bitbucket のリポジトリへのコミットおよびプッシュを実行すると、Pipelines が自動でビルドを実行します。これで、次の Laravel プロジェクトをビルドするための開始点を準備できました。
この内容はお役に立ちましたか?