diff --git a/docs/guide-ja/tutorial-docker.md b/docs/guide-ja/tutorial-docker.md new file mode 100644 index 00000000000..3fc6ff368d5 --- /dev/null +++ b/docs/guide-ja/tutorial-docker.md @@ -0,0 +1,104 @@ +Yii と Docker +============= + +開発および配備の際に Yii アプリケーションを Docker コンテナとして実行することが出来ます。 +コンテナは隔絶された軽量の仮想マシンのようなもので、そのサービスをホストのポートにマップします。 +例えば、コンテナ内の 80 番ポートにあるウェブ・サーバが(ローカル)ホストの 8888 番で利用できます。 + +コンテナによって、開発用コンピュータと実運用サーバでソフトウェアのバージョンを全く同一にすること、迅速な配備、開発時におけるマルチ・サーバ・アーキテクチャのシミュレーションなど、数多くの問題を解決することが出来ます。 + +Docker コンテナの詳細については、[docker.com](https://www.docker.com/what-docker) を参照して下さい。 + +## 必要なもの + +- `docker` +- `docker-compose` + +[ダウンロード・ページ](https://www.docker.com/community-edition) で Docker のツールを取得して下さい。 + +## インストール + +インストール後、`docker ps` を実行すると、以下と同様の出力が得られるはずです。 + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS +``` + +これは Docker デーモンが起動して走っていることを意味します。 + +これに加えて `docker-compose version` を実行すると、出力は次のようになるはずです。 + +``` +docker-compose version 1.20.0, build unknown +docker-py version: 3.1.3 +CPython version: 3.6.4 +OpenSSL version: OpenSSL 1.1.0g 2 Nov 2017 +``` + +Compose を使って、データベースやキャッシュなど、アプリケーションに必要な全てのサービスを設定して管理することが出来ます。 + +## リソース + +- Yii のための PHP ベースのイメージが [yii2-docker](https://github.com/yiisoft/yii2-docker) にあります +- [yii2-app-basic](https://github.com/yiisoft/yii2-app-basic#install-with-docker) のための Docker サポート +- [yii2-app-advanced](https://github.com/yiisoft/yii2-app-advanced/pull/347) のための Docker サポートは開発中です + +## 使用方法 + +Docker の基本的なコマンド: + + docker-compose up -d + +スタックにある全てのサービスをバックグラウンドで実行 + + docker-compose ps + +実行中のサービスをリストアップ + + docker-compose logs -f + +全てのサービスのログを連続的に表示 + + docker-compose stop + +スタックにある全てのサービスを穏やかに停止 + + docker-compose kill + +スタックにある全てのサービスを即座に停止 + + docker-compose down -v + +全てのサービスを停止して削除、**ホスト・ボリュームを使っていない場合のデータ損失に注意** + +コンテナの中でのコマンドの実行: + + docker-compose run --rm php composer install + +新しいコンテナの中で composer install を実行 + + docker-compose exec php bash + +*実行中の* `php` サービスの中で bash を実行 + + +## Advanced topics + +### Yii フレームワークのテスト + +[ここ](https://github.com/yiisoft/yii2/blob/master/tests/README.md#dockerized-testing) で説明されているように、Yii 自体に対する Docker を使ったフレームワーク・テストを実行することが出来ます。 + +### データベース管理ツール + +MySQL を (`mysql`) として実行するときは、以下のようにして phpMyAdmin コンテナをスタックに追加することが出来ます。 +``` + phpmyadmin: + image: phpmyadmin/phpmyadmin + ports: + - '8888:80' + environment: + - PMA_ARBITRARY=1 + - PMA_HOST=mysql + depends_on: + - mysql +```