Mailpitは、開発環境で送信されるメールをブラウザで確認できる便利ツールです。
MAMPなどローカル環境では brew install で入れることが多いですが、Docker環境では専用コンテナを追加して動かします。
✅ 1:docker-compose.yml にMailpitサービスを追加
Laravel + MySQL構成にMailpitを追加する例です。
version: '3.8'
services:
app:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: task-reminder-app
volumes:
- ./src:/var/www/html
- ./docker/apache/default.conf:/etc/apache2/sites-available/000-default.conf
ports:
- "8080:80"
depends_on:
- db
db:
image: mariadb:10.5
container_name: task-reminder-db
volumes:
- dbdata_task_reminder:/var/lib/mysql
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: task_reminder
MYSQL_USER: laravel_user
MYSQL_PASSWORD: password123
ports:
- "3307:3306" # portsは被らないように注意
phpmyadmin:
image: phpmyadmin/phpmyadmin
platform: linux/amd64
container_name: task-reminder-phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: db
PMA_USER: laravel_user
PMA_PASSWORD: password123
depends_on:
- db
mailpit: # ★ Mailpitサービス追加
image: axllent/mailpit
container_name: task-reminder-mailpit
ports:
- "8025:8025" # Web UI
- "1025:1025" # SMTP
volumes:
dbdata_task_reminder:
✅ 2:.env をMailpit用に設定
Laravelのメール設定を、Mailpitコンテナに合わせて変更します。
.env
MAIL_MAILER=smtp
MAIL_HOST=mailpit # サービス名
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
⚠️ 注意
MAMPなどローカル実行なら MAIL_HOST=127.0.0.1 になりますが、Dockerではサービス名(ここでは mailpit)を指定します。
✅ 3:再起動
docker compose down # down でコンテナを停止・削除
docker compose up -d # up -d で再起動(ビルドは不要)
✅ 4:確認
http://localhost:8025
を開くと、MailpitのWeb UIが表示され、Laravelから送信されたメールが一覧で確認できます。
関連