Discourse とは
[Discourse](https://www.discourse.org/) はいわゆる掲示板や電子会議室に相当するコミュニティのためのモダンなフォーラムソフトウェア。主に以下のライブラリで構築されている。
xfs_info
xfs_info /var | grep ftype
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
ftype=0
だと Docker の Storage Driver に OverlayFS が利用できない。
例えば お名前.com VPS のデフォルトインストールでは利用できないので「お名前.com VPS (KVM) に最新の CentOS をインストールする - Qiita」を参考に OS を再インストールする。
CentOS のデフォルトインストールであれば Storage Driver の設定に悩まず進められる。
DNS の設定
discourse IN A 192.0.2.1
mail IN A 192.0.2.1
IN MX 10 mail.example.jp.
mail IN A 192.0.2.1
@ IN MX 10 mail.example.com.
example.jp. IN MX 10 mail.example.jp.
Discourse は IP アドレスでは動作しないので専用のドメインかサブドメインを用意する必要がある。ここでは discourse.example.jp
として進める。
また、メールサーバーが必須なため、ここでは mail.example.jp
とする。
必要パッケージのインストール
Docker のインストール
yum --assumeyes install git net-tools yum-utils && \
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \
yum --assumeyes install docker-ce && \
systemctl start docker && \
systemctl enable docker
git
Discrouse のダウンロードに使用する。
net-tools
./discourse-setup
で netstat
コマンドを使用するため net-tools
パッケージをインストールする。
yum-utils
Docker 公式リポジトリの導入で yum-config-manager
コマンドを使用するため yum-utils
パッケージをインストールする。
docker-ce
パッケージ名に含まれる ce
は Community Edition の略。
Docker の Storage Driver の確認
Storage Driver の確認
docker info | grep Storage
Storage Driver: devicemapper
Docker の Storage Driver が devicemapper
になっていると ./discourse-setup
実行時に Your Docker installation is not using a supported storage driver. If we were to proceed you may have a broken install aufs is the recommended storage driver, although zfs/btrfs/overlay and overlay2 may work as well. Other storage drivers are known to be problematic.
というエラーが出力されてはじかれてしまう。
Storage Driver の変更
echo '{"storage-driver":"overlay2"}' >> /etc/docker/daemon.json
systemctl restart docker
CentOS では aufs
を使用できないため overlay2
を使用する。
dockerd -s overlay2
https://docs.docker.com/v17.09/engine/userguide/storagedriver/overlayfs-driver/
https://docs.docker.com/storage/storagedriver/overlayfs-driver/
Storage Driver の再確認
docker info | grep Storage
Storage Driver: overlay2
Storage Driver が overlay2
に変わっていればよい。
Discourse のインストール
mkdir --verbose /var/discourse && \
git clone https://github.com/discourse/discourse_docker.git /var/discourse && \
cd /var/discourse && \
./discourse-setup
Hostname for your Discourse? [discourse.example.com]: discourse.example.jp
Email address for admin account(s)? [me@example.com,you@example.com]: admin@example.jp
SMTP server address? [smtp.example.com]: mail.example.jp
SMTP port? [587]:
SMTP user name? [user@example.com]: admin@example.jp
SMTP password? [pa$$word]: P@ssw0rd
Optional email address for setting up Let's Encrypt? (ENTER to skip) [me@example.com]:
後から SSL 対応にする場合
vi /var/discourse/containers/app.yml
templates:
- "templates/web.template.yml"
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
env:
LETSENCRYPT_ACCOUNT_EMAIL: 'admin@example.jp'
cd /var/discourse
./launcher rebuild app
Setting up HTTPS support with Let's Encrypt - howto / sysadmin - Discourse Meta