takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

Google App Engine PHP 7.2 で siler を動かしてみる

先日 PHP の Web フレームワーク siler の開発環境を Docker で作成しましたが、今回は GAE にデプロイして動作確認してみました

検証環境

Windows10 Home Edition
VirtualBox 5.2.16
Docker version 18.05.0-ce, build f150324
docker-machine version 0.14.0, build 89b8332
docker-compose version 1.20.1, build 5d8c71b

siler の開発環境について

こちらの記事の手順で作成します。今回はこれに GAE のデプロイ設定を追加します takaya030.hatenablog.com

ディレクトリ構成

前回から app.yamlgcloud_config フォルダが追加されています

siler
|---app.Dockerfile
|---data.Dockerfile
|---docker-compose.yml
|---php72.Dockerfile
|   
|---data
|   |---www
|       |---app.yaml
|
|---composer
|
|---gcloud_config

各種設定ファイル

差分のみ掲載

data.Dockerfile

--- data.Dockerfile.old Sun Oct 14 17:38:22 2018
+++ data.Dockerfile     Sun Oct 14 15:23:43 2018
@@ -2,6 +2,7 @@
 LABEL maintainer "takaya030"

 RUN mkdir -p /data \
-       && mkdir -p /home/docker/.composer
-VOLUME ["/data","/home/docker/.composer"]
+       && mkdir -p /home/docker/.composer \
+       && mkdir -p /root/.config
+VOLUME ["/data","/home/docker/.composer","/root/.config"]
 CMD ["true"]

docker-compose.yml

--- docker-compose.yml.old      Sun Oct 14 17:41:04 2018
+++ docker-compose.yml  Sun Oct 14 16:20:07 2018
@@ -7,6 +7,7 @@
     volumes:
       - ./data:/data
       - ./composer:/home/docker/.composer
+      - ./gcloud_config:/root/.config
   base:
     build:
       context: .
@@ -25,3 +26,9 @@
     command: ["composer","serve"]
     depends_on:
       - base
+  sdk:
+    image: google/cloud-sdk:alpine
+    volumes_from:
+      - data
+    working_dir: "/data/www"
+    command: ["gcloud","version"]

data/www/app.yaml

このファイルは新規追加となります

runtime: php72
api_version: 1

data イメージのリビルド

data.Dockerfile を変更したのでリビルドする

$ docker-compose build data

起動確認

data コンテナの作り直しと動作確認のため一度ローカルで起動します

$ docker-compose up -d

gcloud 設定

下記コマンドで App Engine のアカウントおよびプロジェクトの設定を行います

$ docker-compose run --rm sdk gcloud init --console-only

プロジェクトの設定完了後、追加で以下の設定を行います

$ docker-compose run --rm sdk gcloud config set core/disable_usage_reporting true
$ docker-compose run --rm sdk gcloud config set component_manager/disable_update_check true
$ docker-compose run --rm sdk gcloud config set metrics/environment github_docker_image

設定内容は以下のコマンドで確認します

$ docker-compose run --rm sdk gcloud info

Cloud Build API の有効化

GAE/PHP7.2 はデプロイ時に Cloud Build API にアクセスします。有効化していない場合は事前にコンソールで有効化します

f:id:takaya030:20181014185618p:plain

デプロイ

下記コマンドで GAEsilerソースコードをデプロイします ( -v で指定しているバージョン番号は任意で OK です)

$ docker-compose run --rm sdk gcloud app deploy -v d001

デプロイに成功した場合、以下のメッセージが表示されます

File upload done.
Updating service [default]...done.
Setting traffic split for service [default]...done.
Deployed service [default] to [https://siler-test.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s default

To view your application in the web browser run:
  $ gcloud app browse

動作確認

デプロイ成功時のメッセージに表示されている URL にアクセスして Hello World が表示されれば成功です

f:id:takaya030:20181014185703p:plain

参考サイト

y-ohgi.hatenablog.com qiita.com