この記事は、Magento Advent Calendar 2017 16日目担当@kzkiq2ndがお送りします。
更新情報
- 2019/06/09 Magento2 on Docker が日本語化対応し、最短2コマンド起動するようになりました - Qiita
- 2018/12/17 Magento2のDockerサンプルをCE2.3.0に対応させました - Qiita
- 2018/03/22 Magento2.2.3 起動を確認済み。
Maegnto2 を Docker で気軽に立ち上げたい
Docker 系 Magento2 開発環境は、既に Magento Chief Architect Alan Kent御大将が作っている"Magento DevBox"などを筆頭に github 上に様々な実装があります。しかし数GBにもなる巨大イメージをビルドしたり、6コンテナを起動してローカルマシンが悲鳴をあげるなど、Magento らしく高負荷で複雑な意識が高い(良い意味です)構成ばかりです。
しかし、そんなに複雑なキットだと、ちょっと試してみようという用途には情報量が多く、起動までの学習コストが高くなってしまい初見殺し感が否めません。
というわけで、
初心者にもやさしく手頃な意味で”意識低め”の Magento2 on Docker 環境キットを作りました。
要件
- 軽量なイメージ
- Magento2 アプリはローカルで持つ
- 素朴な Docker 構成ファイル
成果物
こちらが完成した構成です。
MacbookPro 2013 程の時代遅れな環境でも5分程で初回ビルドが完了し、独自ビルドイメージのサイズもだいたい 560MB と比較的軽量です。
利用方法も単純で、
- Magento 公式から Magegnto zip をダウンロード
- docker-compose up -d
の2ステップで完成です。
詳しい手順はREADME.mdを参照してください。
以下は構成をつくったときのポイントです。
1. Apache 入り PHP7.0 公式イメージを使う
WEBサーバー構成の手間を節約するためphp:7.0-apacheを利用しM2動作に最低限必要なビルド等をおこなっています。
難しいビルドを行っているわけでも再利用するつもりもないので1ステップでRUNしています。そしてメールサーバーを忘れています。雑い。
2. Magento2 は zip で取得してローカルマウントする
自動化したくなる部分ですが、ここをDockerfileビルド範囲に含めるとその度に再取得・構成と時間を消費します。それを避けるためにMagento2アプリ本体ファイル群はローカルに手動で設置します。
Magento公式から好きなMagento2のzipを取ってきて解凍し./html/
にコピペです。
コンテナ内へのファイル同期に少し待機が必要ですが、http://localhost/
からセットアップウィザードで初期設定を行えば完了です。
ローカル側の Composer で設置だけするのも可能な気がしますが試してはいません。
※DB周り初期状態。
項目 | 内容 |
---|---|
Database Server Host | db |
Database Server Username | root |
Database Server Password | Passw0rd! |
Docker ありがとう
Vagrant からの乗り換えでしたが Docker 便利です。ありがとうございます。
今後はテストプロジェクトで動かしてみつつ、使い勝手を向上させていこうと思います。