在 docker 中使用 laravel 和 mailtrap

问题描述

我在 docker 中使用 Laravel,我决定连接 mailtrap 服务来测试邮件发送。 但是在docker中不起作用,如果你不在docker中运行项目,它会根据需要发送邮件。

这是我的 docker compose 文件和 Laravel 设置。

我的docker-compose.yml

version: '3'

services:
  project-nginx:
    container_name: project-nginx
    build:
      context: .docker/nginx
      dockerfile: Dockerfile
    links:
      - project-php
      - project-node
    volumes:
      - ./.docker/nginx/project.conf:/etc/nginx/conf.d/default.conf:ro
      - ${WWW_PATH}:/var/www/:rw
    ports:
      - ${NGINX_PORT_HTTP_HOST}:80
      - ${NGINX_PORT_HTTPS_HOST}:443
    networks:
      project-network:
        ipv4_address: 128.10.0.3
    restart: unless-stopped

  project-php:
    container_name: project-php
    build:
      context: .docker/php
      dockerfile: Dockerfile
    links:
      - project-postgres
      - project-redis
    volumes:
      - project-composer:/home/www-data/.composer/:rw
      - ${WWW_PATH}:/var/www/:rw
      - ./.docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini:ro
      - ./.docker/php/php.ini:/usr/local/etc/php/php.ini:ro
      - ./.docker/php/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf:ro
    working_dir: /var/www/
    expose:
      - 9000
    ports:
      - ${PHP_FPM_PORT_HOST}:9000
    environment:
      PHP_IDE_CONFIG: "serverName=project-docker"
    networks:
      project-network:
        ipv4_address: 128.10.0.4
    restart: unless-stopped

  project-node:
    container_name: project-node
    build:
      context: .docker/node
      dockerfile: Dockerfile
    volumes:
      - ${WWW_PATH}:/var/www/:rw
    working_dir: /var/www
    expose:
      - 3002
    ports:
      - ${NODE_PORT_HOST}:3002
    networks:
      project-network:
        ipv4_address: 128.10.0.5
    restart: unless-stopped

  project-postgres:
    container_name: project-postgres
    image: postgres:11.10
    volumes:
      - project-postgres:/var/lib/postgres/:rw
      - ./.docker/postgres/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro
      - ./.docker/postgres/dump/project2.sql:/dump/project2.sql:ro
      - ./.docker/postgres/dump/projectstat.sql:/dump/projectstat.sql:ro
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-Qwerty123}
    networks:
      project-network:
        ipv4_address: 128.10.0.6
    ports:
      - ${POSTGRES_PORT_HOST}:5432
    restart: unless-stopped

  project-redis:
    container_name: project-redis
    build:
      context: .docker/redis
      dockerfile: Dockerfile
    expose:
      - 6379
    volumes:
      - project-redis:/data:rw
    networks:
      project-network:
        ipv4_address: 128.10.0.7
    ports:
      - ${REDIS_PORT_HOST}:6379
    restart: unless-stopped

networks:
  project-network:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 128.10.0.0/24
    driver_opts:
      com.docker.network.bridge.name: br_project

volumes:
  project-composer:
    external:
      name: project-composer
  project-postgres:
    external:
      name: project-postgres
  project-redis:
    external:
      name: project-redis


我的 Laravel .env

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=my_name
MAIL_PASSWORD=123
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=hello@test.com
MAIL_FROM_NAME="${APP_NAME}"
SENDGRID_API_KEY=my_key

也许有人知道为什么 mailtrap 不在 docker 中发送信件?

你能告诉我问题是什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...