Google Calendar APIのクイックスタートPHP版をDockerでさくっと実行してみる

PHP Quickstart  |  Calendar API  |  Google Developersを使ってみました。認証情報のあたりでいろいろ操作するのは面倒ですよね。必要だし、ずいぶん簡単にはなっているので、面倒というほど面倒でもありませんけど。

それで、Google Calendar APIのクイックスタートPHP版を実行するには、当然PHPの環境が必要なわけで、正直、これも用意するのが面倒。Linuxでyumやaptで簡単にインストールできるといえばできるのだけど、バージョンがいろいろあったり、PHP7とPHP5.6を共存させたくなったり、いろいろあって大変。なので、やっぱりDockerを使うのがいいのだろうなぁ、ということで、さくっと実行してみる。

php70-apacheを使えばPHP7の環境はすぐに手に入ります。phpinfo()で実行確認できるところまでは下記。

$ d="${HOME}/workspace/docker/php70-apache/var/www/html"
$ if [ -e ${d} ]; then; mkdir -p ${d}; fi
$ cd ${d}
$ echo '<?php phpinfo();' > ${d}/index.php
$ docker run -d -p 80:80 \
 -v ${HOME}/workspace/docker/php70-apache/var/www/html:/var/www/html \
 --name php70-apache php:7.0-apache

これでWebブラウザを開いて http://localhost/ へアクセスすれば、PHPの情報が表示されるはず。

Google Calendar APIのアプリを動かすには、php70-apacheを動かしたまま、下記を実行。${HOME}/workspace/docker/php70-apache/var/www/html/quickstart.phpはPHP Quickstartを参照して用意してください。ComposerもDockerイメージがあるので、それを使ってます。2行目でphp70-apacheへアタッチしてます。

$ docker run --rm -it \
   -v ${PWD}:/app \
   -w /app composer \
    composer require google/apiclient:^2.0
$ id=$(docker ps|grep php70-apache|grep -v grep| awk '{print $1}')
$ docker exec -i -t $id /bin/bash

アタッチした後は、phpコマンドでquickstart.phpを実行するだけ。手軽だ。

# php quickstart.php

library/composer – Docker Hub(https://hub.docker.com/_/composer/)にComposerのDockerイメージがあるのですね。次のような感じで実行できるようです。composerコマンドのコマンドラインオプションを指定する場合はcomposerコマンドは省略できるみたいなので、最後のような書き方もできるとのこと。便利

docker run --rm -it -v $PWD:/app -w /app composer:1.6.3 composer install
docker run --rm -it -v $PWD:/app -w /app composer composer install
docker run --rm -it -v $PWD:/app -w /app composer install
同じタグの記事: Docker
同じタグの記事: PHP
同じカテゴリの記事: Linux
関連書籍: PHP