環境・要件
CentOS Linux release 7.5.1804 (Core)
- Redmine3.2.0を使いたい(移設のためバージョンちょっと古めです)
- DBはMySQL
- チケット更新時にはメールを飛ばしたい
- http://IPアドレス でアクセスしたい(SSL化はとりあえずやらない)
- Dockerを使ってみたい
- 本当はDockerfileを書いてやりたかったけどエラーでうまく立ち上がらず挫折
作業開始
Dockerインストール&イメージ取得
redmineのバージョンは古いのを指定しています
$ sudo yum install docker
$ docker pull sameersbn/redmine:3.2.0
$ docker pull sameersbn/mysql:latest
データストア作成
コンテナが落ちてもデータは残るようにするため(永続化というやつ)
/home/docker に作ってしまったのですが普通は /srv/docker に作るみたいですね…
$ mkdir -p /home/docker/redmine3.2.0/mysql
$ mkdir -p /home/docker/redmine3.2.0/redmine
SELinuxの設定
これをやらないとdocker run で Permission denied のエラーが出てハマります
$ chcon -Rt svirt_sandbox_file_t /home/docker/redmine3.2.0/mysql
$ chcon -Rt svirt_sandbox_file_t /home/docker/redmine3.2.0/redmine
コンテナ作成
$ docker run --name=mysql-redmine -d --env='DB_NAME=redmine' --env='DB_USER=redmine' --env='DB_PASS=password' -v /home/docker/redmine3.2.0/mysql:/var/lib/mysql sameersbn/mysql
$ docker run --name=redmine -d -p 80:80 --link=mysql-redmine:mysql -v /home/docker/redmine3.2.0/redmine:/home/redmine/data sameersbn/redmine:3.2.0
しばらく待つと http://IPアドレス でアクセスできるようになりました!とても簡単
メールの設定
ここがかなりハマったところです…
まずは ホストOS 上にメールサーバーを立てます。
(最初Redmineコンテナにメールサーバーを立てようとしていてハマっていました…)
PostfixのインストールとMTA設定
PostfixをデフォルトのMTAに設定します
$ yum install postfix
$ sudo alternatives --config mta
選択 コマンド
-----------------------------------------------
+ 1 /usr/sbin/sendmail.postfix
* 2 /usr/sbin/sendmail.sendmail
(Postfixを選択する)
この時点で $ sendmail foo@foo.com
コマンドでメール送信ができるようになるはず
RedmineコンテナのIPを調べる
$ docker inspect redmine
(略)
"IPAddress": "172.17.0.3",
(略)
172.17.0.3 のようです。
Postfixの設定&再起動
mynetworksにコンテナを含むIPを設定(172.17.0.0/16)
inet_interfacesにdocker0のIP?を設定(172.18.0.1)
よく理解できてないのですがとりあえずこれで動きましたというかんじです
# vi /etc/postfix/main.cf
mynetworks = 168.100.189.0/28, 127.0.0.0/8, 172.17.0.0/16
inet_interfaces=localhost, 127.0.0.1, 172.18.0.1
# systemctl restart postfix
firewallの設定
コンテナからのアクセス(172.17.0.0/16)を許可します
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="172.17.0.0/16" service name="smtp" accept'
# firewall-cmd --reload
Redmineの設定
Redmineコンテナの中に入ります
$ docker exec -it redmine bash
configuration.yml を作成&編集
$ mv /home/redmine/redmine/config/configuration.yml.example /home/redmine/redmine/config/configuration.yml
email_delivery:
delivery_method: :smtp
smtp_settings:
address: 172.18.0.1
port: 25
exitして、redmineを再起動
$ docker restart redmine
http://IPアドレス/settings?tab=notifications から「テストメールを送信」で送信できることを確認しました!
今度は SSL化 & DockerFileを書いてみたいです!