大前提
出来るだけ楽してWordpressコンテナを作成して行きたい。= Dockerfileを1から書くのは苦痛なので公開されているものをなんとかして使いたい。
目的
bakudankun/wordpress-jaを使用してWordpressコンテナを立ち上げたが、パスワードリセットが出来ない(mail()が動かない)のでなんとかする。
日本語情報が全然なかったのでメモにする。
参考
githubのissue
日本語版WordPressのテーマ開発環境をサクっと立ち上げるdocker-compose.ymlを参考にコンテナを立ち上げているのでdocker-compose.ymlについてはそちらを参照してください。
メール用設定変更シェルを作成する
mail_config.sh
#!/bin/sh
host=$(hostname)
line=$(cat /etc/hosts |grep [1]27.0.0.1)
echo "$line localhost localhost.localdomain $host" >> /etc/hosts
#sed -i -e "s/$line/$line noreply@yourdomain.com $host/g" /etc/hosts
echo "$host" >> /etc/mail/relay-domains
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sendmail -bd
追加のphp.iniを作成する
sendmail.ini
sendmail_path = /usr/sbin/sendmail -t -i
Dockerfileの作成
Dockerfile
FROM bakudankun/wordpress-ja:latest
# 必要なツール郡をインストール
RUN apt-get update \
&& apt-get upgrade -y sendmail \
&& rm -rf /var/lib/apt/lists/*
# コンテナからメール送れるように
COPY ./mail_config.sh /var/www
COPY ./sendmail.ini /usr/local/etc/php/conf.d/
RUN chmod +x /var/www/mail_config.sh
# CMDでmail_config.sh実行する
CMD /var/www/mail_config.sh && apache2-foreground
docker-compose.ymlの修正
docker-compose.yml
# image: bakudankun/wordpress-ja:4.5.2-apacheの部分を修正する
wp:
# Dockerfileを作成した場所を指定する。
build: .
links:
- mysql:mysql
ports:
- "80:80"
volumes:
- "${PWD}/wp-content/:/var/www/html/wp-content"
environment:
# wp-configのデバッグ機能を有効化
- WORDPRESS_DEBUG: "true"
おわりに
上記のファイル群を作成することでコンテナ内からメールを送ることができるようになった。
ググって全然日本語情報出ないの辛いですよー本当にー。