无法连接到Docker上的localhost

时间:2018-11-10 07:49:41

标签: ruby-on-rails macos docker docker-compose dockerfile

我突然收到此错误。 在收到此错误之前,我可以连接。

class Test extends Component {
    state = {
        error: false
    };

    componentDidMount = () => {
        setTimeout(() => {
            this.setState({error: true});
        }, 0)
    };

    render = () => {
        if (this.state.error) {
            return (
                <View>
                    {
                        test.error
                    }
                </View>
            )
        } else {
            return (
                <View>
                    Test
                </View>
            )
        }
    }
}

我的环境在下面。

OS:macOS Sierra 10.12.6 Docker版本18.06.1-ce,内部版本e68fc7a

docker-compose.yml

$ curl localhost:3000
curl: (7) Failed to connect to localhost port 3000: Connection refused

Dockerfile

version: "3"

services:
  web:
    build: web
    ports:
      - "3000:3000"
    environment:
      - "DATABASE_HOST=db"
      - "DATABASE_PORT=5432"
      - "DATABASE_USER=********"
      - "DATABASE_PASSWORD=********"
    links:
      - db
    volumes:
      - "./app:/app" #共有フォルダの設定
    stdin_open: true

  db:
    image: postgres:10.1
    ports:
      - "5432:5432"
    environment:
      - "POSTGRES_USER=********"
      - "POSTGRES_PASSWORD=********"

如果您有解决此问题的建议,请告诉我。 谢谢。

1 个答案:

答案 0 :(得分:0)

您应该指定用于运行应用程序的命令,例如:bundle exec rails s -p 3000 -b '0.0.0.0',该命令在端口3000上运行服务器并将其绑定到本地网络0.0.0.0。 因此您应该将其写在Dockerfile的最后一行中:

RUN bundle exec rails s -p 3000 -b '0.0.0.0'