2

我有一个 docker-compose,它包含 Keycloak 和 Mailhog。我在 Keycloak 中配置了 Mailhog,但它不起作用。我在 Powershell 中尝试了 MailHog,它可以工作。有人可以帮我弄清楚为什么它不起作用吗?

Keycloak上的Mailhog配置步骤:

  • 首先,我为当前 Keycloak 用户添加电子邮件地址 (master@test.com)。
  • 然后我像下面这样配置电子邮件

在此处输入图像描述

当我点击“测试连接”时,它会给出“错误!发送电子邮件失败”错误消息。但我尝试使用下面的 cmd 发送电子邮件,它可以工作。

Send-MailMessage -To "master@test.com" -From "sender@test.com" -Subject "Test email1" -SmtpServer "localhost" -Port 1025

码头工人撰写文件

        version: '3.6'
    
    services:
      mailhog-keycloak:
        image: mailhog/mailhog
        container_name: mailhog
        logging:
          driver: 'none'  # disable saving logs
        ports:
          - 1025:1025 # smtp server
          - 8025:8025 # web ui
        networks:
          - dev_network
      postgres-keycloak:
        image: postgres:9.6-alpine
        container_name: postgres
        environment:
          POSTGRES_DB: keycloak
          POSTGRES_USER: keycloak
          POSTGRES_PASSWORD: password
        networks:
          - dev_network
    
      keycloak:
        image: jboss/keycloak:10.0.2
        container_name: keycloak_10
        environment:
          DB_VENDOR: POSTGRES
          DB_ADDR: postgres
          DB_DATABASE: keycloak
          DB_USER: keycloak
          DB_PASSWORD: password
          KEYCLOAK_USER: admin
          KEYCLOAK_PASSWORD: admin
        ports:
          - 8080:8080
        external_links:
          - postgres
        volumes:
          - ./themes/keycloak:/opt/jboss/keycloak/themes/shoping
          - postgres-keycloak
        networks:
          - dev_network
    networks:
      dev_network:
4

1 回答 1

4

问题是localhost- 每个容器都有自己的命名空间,所以每个容器都有自己的localhost,它独立于其他容器本地主机。

使用mailhog(maybe mailhog-keycloak) 而不是localhostHost字段中 - 这是一个容器/服务名称,它应该解析当前的 mailhog 容器 IP,所以它应该可以工作。

于 2020-12-23T08:56:21.633 回答