首页 > 解决方案 > docker compose rails 6 example with mailcatcher 不起作用

问题描述

我有这个文件“docker-compose.yml”

    version: '3'

    services:

    web: 
        build: .
        #command: bash -c "foreman start -f Procfile.dev-server"
        ports:
            - "3000:3000"

        volumes:
            - .:/app  

        environment:
            DATABASE_HOST: database
            POSTGRES_USER: postgres
            POSTGRES_PASSWORD: miclave
            POSTGRES_DB: myapp_development  

        links:
            - mailcatcher    

        depends_on:
            - database 
        stdin_open: true
        tty: true
    database:
        image: postgres 
        ports:
            - "5432:5432"
        volumes:
            - .:/app   
        environment:
            POSTGRES_USER: postgres
            POSTGRES_PASSWORD: miclave
            POSTGRES_DB: myapp_development

    mailcatcher:
        image: zolweb/docker-mailcatcher:latest
        ports:
            - "1025:1025" 
            - "1080:1080"  

当我尝试从我的 ruby​​ on rails web 应用程序发送电子邮件时,我收到此错误:

在此处输入图像描述

谁能帮我找出我做错了什么?谢谢

标签: ruby-on-railsdocker-composemailcatcher

解决方案


这是因为您无法通过127.0.0.1. 如果您的服务在同一网络上,您将能够通过links您传递的指令访问它,例如将您的地址从 更改127.0.0.1mailcatcher。如果您的服务位于不同的网络中 - 您可以在需要调用的服务上打开端口,然后通过机器本地 IP 地址访问它(不是127.0.0.1本地网络中的物理/虚拟机 IP 地址,而是通过本地网络中的物理/虚拟机 IP 地址)


推荐阅读