docker-php-fpm icon indicating copy to clipboard operation
docker-php-fpm copied to clipboard

Need help: php-fpm, apache and mailhog

Open simkea opened this issue 4 years ago • 0 comments

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"

simkea avatar Jan 27 '21 10:01 simkea