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