TL;DR
- オープンソースなソーシャルネットワーキングエンジンElggをDockerコンテナで稼働させる方法を紹介します
- elgg-docker-composeを作りましたので,こちらを使用すると簡単です
Elgg概要
- PHPで作られている,ソーシャル・ネットワークエンジンです
- Webアプリにソーシャル環境を導入するためのフレームワークです
- 操作のためのAPIが提供されています
- 2000種類以上のプラグインがあり,組み合わせて使用することができます
構成
- docker-composeで,3つのコンテナを立ち上げます
- Elgg: Elgg本体
- 80/TCPを受け付けます.外部公開の際にはリバースプロキシなどで適切なセキュリティ保全を行ってください.
- MariaDB: Elggデータ用DBコンテナ
- 3306/TCPでアクセスを受け付けます.dockerネットワークからの接続のみを受け付けます
- composer:
docker-compose up
時に稼働するパッケージインストール用コンテナ
- Elgg: Elgg本体
使い方
dockerコンテナ群の立ち上げ
git clone https://github.com/myoshimi/elgg-docker-compose
cd elgg-docker-compose
git clone https://github.com/Elgg/Elgg
docker-compose up -d
- 初回はcomposerコンテナがライブラリのインストールを終了するまで,数分時間がかかります.
-
docker ps -a
で,elgg-docker-compose_composer_1
がExited状態になれば,稼働しています.
-
-
http://<URL>
にアクセスするとelggのセットアップ画面が表示されます
DB設定
- セットアップ作業で迷う部分は少ないと思いますが,DB設定は,docker-composeの設定に併せる必要があります.
- github上のdocker-compose.ymlでは,以下のようにしています
項目 | 入力値 |
---|---|
Database Username | elgg |
Database Password | password |
Database Name | elgg |
Database Host | db |
Database Table Prefix | elgg_ |
Data Directory | /elgg |
Site URL | http://127.0.0.1 |
設定後
不揮発ボリューム
- elgg-docker-composeディレクトリ直下に,volumes/{db,elgg}が作られます
- MariaDBのデータ(/var/lib/mysql)が格納されます
- elggコンテナは
volumes/elgg
を/elgg
にマウントし,elgg用のデータが格納されます - elggコンテナがElggディレクトリをマウント(/var/www/html)します
いくつかの注意点
- Dockerhubの
php:7.2-apache
イメージはmod_rewrite
が有効になっていないので,a2enmod
する必要がある