docker-php-fpm
docker-php-fpm copied to clipboard
Need help: php-fpm, apache and mailhog
Hello, I need some help from you guys. I'm trying to integrate Mailhog and I can't get emails to arrive correctly in Mailhog. I can't find a suitable example setup either.
here is my docker-compose.yml:
version: "3.8"
services:
# https://github.com/devilbox/docker-php-fpm#php-default-configuration
php:
image: devilbox/php-fpm:7.4-prod
volumes:
- ./var/shared:/shared/httpd
- ./var/www/:/var/www/default/
- ./config/php:/etc/php-custom.d
- ./var/mail:/var/mail
environment:
- ENABLE_MAIL=2
links:
- mailcatcher:1025
- mysql:mysql
networks:
- backend
- proxy
depends_on:
- mailcatcher
# https://hub.docker.com/r/devilbox/apache-2.4
apache:
image: devilbox/apache-2.4:latest
environment:
- PHP_FPM_ENABLE=1
- PHP_FPM_SERVER_ADDR=php
- PHP_FPM_SERVER_PORT=9000
- VIRTUAL_HOST=${VIRTUAL_HOST}
- VIRTUAL_PORT=80
- POSTFIX_RELAYHOST=[mailcatcher]:1025
volumes:
- ./var/shared:/shared/httpd
- ./var/www/:/var/www/default/
- ./config/apache:/etc/httpd-custom.d
expose:
- 80
- 443
ports:
- 8080:80
- 8443:443
links:
- php:php
- mysql:mysql
- mailcatcher:1025
networks:
- backend
- proxy
depends_on:
- php
- mailcatcher
# https://hub.docker.com/_/mysql
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_USER=admin
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=E_Nummer
- TZ=Europe/Berlin
ports:
- '3306:3306'
volumes:
- mysql:/var/lib/mysql
- ./dump:/docker-entrypoint-initdb.d/
- ./config/mysql/:/etc/mysql/conf.d/
command: 'mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --sql-mode="" --default-authentication-plugin=mysql_native_password'
networks:
- backend
- proxy
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
adminer:
image: adminer
restart: on-failure
environment:
- VIRTUAL_HOST=adminer.${VIRTUAL_HOST}
- LETSENCRYPT_HOST=adminer.${VIRTUAL_HOST}
- VIRTUAL_PORT=8080
expose:
- 8080
depends_on:
- mysql
networks:
- proxy
- backend
links:
- mysql:mysql
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
mailcatcher:
image: mailhog/mailhog
environment:
- VIRTUAL_HOST=mail.${VIRTUAL_HOST}
- VIRTUAL_PORT=8025
expose:
- 8025
- 1025
ports:
- "1025:1025"
- "8025:8025"
networks:
- proxy
- backend
volumes:
mysql:
networks:
default:
backend:
proxy:
external: true
Here is my php.ini:
expose_php = off
max_execution_time = 360
max_input_time = 360
memory_limit = 256M
upload_max_filesize = 1G
post_max_size = 1G
opcache.enable = 1
opcache.revalidate_freq = 2
opcache.validate_timestamps = 1
opcache.interned_strings_buffer = 32
opcache.memory_consumption = 256
[mail function]
SMTP = mailcatcher
smtp_port = 1025
mail.add_x_header = On
mail.log = /var/mail/mail.log
[Xdebug]
xdebug.enable = 1
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.default_enable=0
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_connect_back=0
xdebug.profiler_enable=0
xdebug.remote_log="/tmp/xdebug.log"