諸般の事情で

CodeBuild 用の PHP イメージを作って公開してみた。このコンテナイメージを利用して PHPUnit を実行する予定。

作ったもの

codebuild-php-image - CodeBuild で利用する PHP コンテナイメージ(PHP 5.6.x 版)

github.com

デモ

ビルド

build.sh を修正

ECR のリポジトリを指定する。

#!/usr/bin/env bash

DOCKER_CONTENT_TRUST=1

eval $(aws ecr get-login --no-include-email --region ap-northeast-1)

docker build -t codebuild-php .
docker tag codebuild-php:latest 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/codebuild-php:latest
docker push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/codebuild-php:latest

ビルド

./build.sh

実行すると ECR にコンテナイメージがプッシュされる。

とりあえず手元の環境で

docker run

cd sample
docker run -t -i -v $(pwd):/opt/codebuild codebuild-php /bin/bash

PHPUnit 実行

root@2d2e13594b64:/# cd /opt/codebuild
root@2d2e13594b64:/opt/codebuild# ./run_test.sh
PHPUnit 5.7.21 by Sebastian Bergmann and contributors.

...                                                                 3 / 3 (100%)

Time: 1.92 seconds, Memory: 12.00MB

OK (3 tests, 3 assertions)

ちなみに run_test.sh の中身は以下の通り。

#!/usr/bin/env bash

php phpunit.phar --bootstrap src/Email.php tests/EmailTest --log-junit post_build/result.xml

テストコードはこちらより拝借。

CodeBuild では…

イメージの指定

下図のように指定することで、ECR に push したコンテナイメージを利用することが出来る。

実行結果

buildspec.yml とかは sample 以下のファイルを確認されたし。

以上

メモでした。
だいぶん、色々と端折ってごめんくさい。

元記事はこちら

CodeBuild で PHPUnit を実行したかったので PHP のコンテナイメージを作って公開した