リリース対象:
- Docker Hub: fuelphp-accon :Version 1.02
- Docker Hub: ubuntu-nginx-phpfpm-redis-mysql :Version 1.02
リリース内容:
ACCONのインフラ部分である[accon/ubuntu-nginx-phpfpm-redis-mysql]の設定でリモートデバッグ(Xdebug)が常時有効となっておりました。(fuelphp-acconは、ubuntu-nginx-phpfpm-redis-mysqlをベースとして構築されています)
その関係でファイアウォールが有効の場合、ブラウザでアプリケーションにアクセスするとリモートデバッグの通信がファイアウォールでブロックされ、処理がその通信のタイムアウトが発生するまで待ちとなり、結果ブラウザ側のタイムアウトが発生し画面に何も表示されない問題がございました。(ファイアウォールを無効化もしくは、Xdebugのポートを許可していた場合は問題なし)
今回のリリースで当問題の是正が完了いたしましたので、最新のご利用をお願いいたします。
fuelphp-acconとは
「Docker Hub」より転記↓
【概要】
FuelPHPをベースとしたWebアプリケーション開発・実行基盤
【構成】
- ベース・コンテナ ubuntu-nginx-phpfpm-redis-mysql
- FuelPHP 1.7.3 + ACCON 1.0(データベースの利用とアクセス制御が必要なWebアプリケーションの基本機能を提供するモジュール)
【 Dockerfile一式はこちらからダウンロード 】
【イメージの取得】
docker pull accon/fuelphp-accon
【利用手順】
1.ローカルにData Volume(共有ディレクトリ)の「workspace」と「data」 ディレクトリを作成
mkdir ~/Develop
mkdir ~/Develop/data-volume
mkdir ~/Develop/data-volume/workspace
mkdir ~/Develop/data-volume/data
パスは任意ですが、OSのユーザのホームディレクトリ配下である必要があります。(パスを変更した場合は、下の「docker run」の内容(-v)を合わせて変更してください)
初回起動時(「docker run」)に上のディレクトリにプロジェクトが設置されます。
- workspaceディレクトリ:FuelPHP+ACCONのプロジェクトが配置されます。(Xdebugのポートは9000)
- dataディレクトリ:データベースの作成用と初期データ用のSQLファイルが配置されます。(「docker run」に実行)
2.コンテナの起動(バックグラウンドでFuelPHP+ACCONを起動)
docker run -d -v ~/develop/data-volume/data:/develop/data:rw -v ~/develop/data-volume/workspace:/develop/workspace:rw -p 80:80 -p 443:443 -p 3306:3306 -p 2222:22 -t -i -h project-server-01 --name project-server-01 accon/fuelphp-accon
3.起動の確認
Kitematicからコンテナ「project-server-01」を選択し、画面右側の「WEB PREVIEW」をクリックすることにより該当のURLが指定された状態でブラウザが起動します。
「Welcome」の画面が表示されれば必要なミドルウェアが起動し、アプリケーションが正常に動作している状態です。
- サーバー証明書が自己証明書のため初めてブラウザでアクセスした場合、セキュリティの警告が出ますが開発には問題ありません。アクセスを許可してご利用ください。
4.各ミドルウェアの起動と停止
コンテナをrun時、下のミドルウェアは全て起動した状態となっております。
また、起動と停止はsshで接続して行います。(本番環境ではsshをコンテナに導入することは推奨しません)
サーバーに接続(ssh)
sshのポートは「2222」です。developユーザでログインしてください。(パスワードはdevelop)
bash:
ssh -p 2222 develop@192.168.99.101
下の起動停止は上のsshで接続を行って実行します。
HTTPサーバー(Nginx)
- 起動:sudo service nginx start
- 停止:sudo service nginx stop
データベース(MySQL)
- 起動:sudo service mysql start
- 停止:sudo service mysql stop
PHP-FPM
- 起動:sudo service php5-fpm start
- 停止:sudo service php5-fpm stop
KVS(Redis)
- 起動:sudo service redis-server start
- 停止:sudo service redis-server stop
ssh
- 起動:sudo service ssh start
- 停止:sudo service ssh stop
5.Webアプリケーションの開発方法
コンテナ内で稼働しているWebアプリケーションのプロジェクトファイルは、ホストOSのローカルのホームディレクトリ配下の「Develop/data-volume/workspace」と共有しています。それらをPhpStormやEclips、テキストエディタで変更することで即座にWebアプリケーションに反映されます。
6.リモートデバッグ方法
Xdebugが有効な状態で起動しています。Xdebugの接続ポート番号は「9000」。
コンテナのスタート
docker attach project-server-01
コンテナのストップ
docker attach project-server-01
Dockerfile
##
# fuelphp-accon
#
# 用途: FuelPHP 開発・実行基盤
# 構成: image[ubuntu-nginx-phpfpm-redis-mysql] + FuelPHP(1.7.3) + ACCON(1.0)
#
# Part of the ACCON.
#
# Copyright (c) 2015 Maemori Fumihiro
# This software is released under the MIT License.
# http://opensource.org/licenses/mit-license.php
#
# @version 1.01
# @author Maemori Fumihiro
# @link https://kurobuta.jp
FROM accon/ubuntu-nginx-phpfpm-redis-mysql:1.01
MAINTAINER Maemori Fumihiro
# インストール
RUN mkdir -p /develop/archive
## FuelPHPの設置
RUN curl -k http://fuelphp.com/files/download/34 > /develop/archive/fuelphp.zip
RUN unzip /develop/archive/fuelphp.zip -d /develop/archive/workspace
RUN mv /develop/archive/workspace/fuelphp-1.7.3 /develop/archive/workspace/project
# 設定
ADD module/fuelphp-accon /etc/service/fuelphp-accon
RUN chmod +x /etc/service/fuelphp-accon
# HTTPはHTTPSへリダイレクト
ADD conf/default /etc/nginx/sites-available/default
# 起動
CMD ["/etc/service/fuelphp-accon"]