LoginSignup
18
14

More than 5 years have passed since last update.

日本語版WordPressコンテナ内からメールを送信する

Posted at

大前提

出来るだけ楽して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"

おわりに

上記のファイル群を作成することでコンテナ内からメールを送ることができるようになった。
ググって全然日本語情報出ないの辛いですよー本当にー。

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14