はじめに
2021年1月20日で話題にのぼったINTER-Mediatorをコンテナで利用するベストプラクティスをまとめます。INTER-MediatorのSlack - containerでの内容を踏まえて更新しつつ、作成中。私自身dockerは初心者なので、勉強しながらなのでちょっと時間がかかります。勉強に当たって参考にしたサイトやブログはリファレンスにまとめておきます。
一応、2021年1月28日現在の最新バージョンでコンテナを利用したINTER-Mediatorの構築が目的です。INTER-Mediatorフレームワークは、PHP, Web Server, Databaseを使ってWebアプリケーションが作成できます。
方針
Docker公式のイメージを利用していきます。Web Server用のコンテナとして、『PHP-apache』、Database用のコンテナして、『PostgreSQL』,『MariaDB』用意します。また、永続化データ用コンテナ『Data』も用意します。
永続するデータは、一旦『Data』コンテナと紐付けます。『Data』コンテナは、ゲストOSのディレクトリに保存して、永続化します。永続化するデータは次の通りです。
- Web Serverのドキュメントルート(INTER-Mediatorを含む)
- PostgreSQLのデータ
- MariaDBのデータ
- 各コンテナからのログ
INTER-Mediatorの入手は、GithubのINTER-Mediatorからできます。ここでは、『INTER-Mediator 6』をフォークして構築を進めます。フォークしたリポジトリをクローンします。
docker-composeとDockerfileを使って構築します。
システム
- マシン: MacBook Air (Intel)
- マシンOS: macOS 10.15
- 仮想: VertualBox 6.1
- ゲストOS: Ubuntu Server 20.04.1 LTS (x86_64)
ユーザ環境
- ユーザ: developer
- ユーザディレクトリ: /home/developer
- 作業ディレクトリ: ~/docker
インストール
- Github - INTER-Mediator
- docker.com - Docker
- Github - docker-compose
- Docker Hub - php
- Docker Hub - MariaDB
- Docker Hub - PostgreSQL
~/docker以下のディレクトリ構成
~/docker
|
|--/config
| |
| |--/mariadb
| | |--Dockerfile
| |
| |--/postgres
| | |--Dockerfile
| |
| |--/php
| | |--Dockerfile
|
|--/data
| |--/php
| |--/mariadb
| |--/postgres
|
|--/docker-compose.yml
|
|--/source
インストールとセットアップ
INTER-Mediator
INTER-MediatorをGitHubからフォークします。のちほど、Apacheのドキュメントルートにクローンします。