PHP最速フレームワーク siler を docker で動かしてみる
PHP で bot や API サーバーを作成するためにコンパクトなフレームワークを探したところ siler を見つけました
こちらのページによると PHP 最速フレームワークだそうです
開発環境つくりがてら Docker
で動作させてみました
検証環境
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 |---app.Dockerfile |---data.Dockerfile |---docker-compose.yml |---php72.Dockerfile | |---data | |---www | |---composer
各種設定ファイル
php72.Dockerfile
php 7.2 + composer
のイメージを作成する Dockerfile
FROM php:7.2-alpine LABEL maintainer "takaya030" RUN apk add --update --no-cache --virtual .persistent-deps \ ca-certificates \ curl \ tar \ libpng \ libxml2 \ sudo \ xz \ git \ unzip # create docker user RUN adduser -S -u 1000 -g 50 docker \ && echo 'docker:tcuser' | chpasswd # install composer RUN curl -sS https://getcomposer.org/installer | php \ && mv composer.phar /usr/local/bin/composer # modify php.ini RUN mv $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini \ && sed -i -e "s/;date.timezone *=.*$/date.timezone = Asia\/Tokyo/" $PHP_INI_DIR/php.ini ENV COMPOSER_HOME /home/docker/.composer RUN mkdir -p /data/www VOLUME ["/data"] WORKDIR /data/www USER 1000 ONBUILD ADD ./data /data CMD ["true"]
data.Dockerfile
base
と app
が参照するボリュームコンテナのイメージを作成する Dockerfile
ROM busybox LABEL maintainer "takaya030" RUN mkdir -p /data \ && mkdir -p /home/docker/.composer VOLUME ["/data","/home/docker/.composer"] CMD ["true"]
app.Dockerfile
アプリケーションサーバーのイメージを作成する Dockerfile
FROM takaya030/php72-alpine LABEL maintainer "takaya030" EXPOSE 8000 CMD ["composer","serve"]
docker-compose.yml
version: "2" services: data: build: context: . dockerfile: data.Dockerfile volumes: - ./data:/data - ./composer:/home/docker/.composer base: build: context: . dockerfile: php72.Dockerfile image: takaya030/php72-alpine volumes_from: - data app: build: context: . dockerfile: app.Dockerfile volumes_from: - data ports: - "8000:8000" command: ["composer","serve"] depends_on: - base
data イメージのビルド
最初に data
のイメージを作成します
$ cd siler $ docker-compose build data
base イメージのビルド
次に base
のイメージを作成します
$ docker-compose build base
siler のインストール
base
イメージを使って data/www/
フォルダに siler
をインストールします
(コマンドの最後にピリオドがついています)
$ docker-compose run --rm base composer create-project siler/project .
app イメージのビルド
サンプルアプリケーションを動作させるためのイメージをビルドします
$ docker-compose build app
動作確認
以下のコマンドでアプリケーションサーバーが起動します
$ docker-compose up -d
web ブラウザで http://192.168.99.100:8000 にアクセスして Hello World が表示されれば成功です