2017-08-07 43 views
0

我有一个rails应用程序,我使用docker-compose来启动docker容器。使用docker-compose公开容器端口到localhost

$ docker-compose -f docker-compose.yml up -d

但我不能访问我的服务器的IP地址我的应用程序(即server's public ip addressport)。这里是我的码头 - 撰写文件:

version: '3' 
volumes: 
    database: 
    app: 
    search_conf: 
services: 
    pgsql: 
    container_name: pgsql 
    image: postgres 
    volumes: 
     - database:/var/lib/postgresql/data 
    sphinx: 
    container_name: sphinx 
    image: leodido/sphinxsearch:2.2.9 
    hostname: sphinx 
    command: searchd.sh 
    links: 
     - pgsql 
    volumes: 
     - app:/app 
     - search_conf:/usr/local/etc/ 
    foobar: 
    container_name: foobar 
    env_file: .env.dev 
    links: 
     - pgsql 
     - sphinx 
    build: 
     context: . 
    ports: 
     - "3000:3000" 
    command: rails s 
    volumes: 
     - app:/app 

如何访问我的服务器的IP地址上的应用程序?

+0

我认为应该按原样工作。你确定你没有网路过滤吗? –

+0

@DanLowe我在阿里云服务上设置了这个功能。每当我在手机或笔记本电脑上尝试容器的IP地址时,它将我重定向到0.0.0.0:3000。而如果我尝试'服务器的IP地址':'端口',那么它什么都不显示。 –

回答

0

您撰写的文件似乎好了,所以有一些我会检查,以调试这几件事情:

  • 你试过本地运行呢?如果它在本地不起作用,则容器中的服务器可能正在监听127.0.0.1:3000而不是0.0.0.0:3000
  • 如果它在本地工作,这种情况可能是您托管拒绝端口3000上的入站连接,这不是docker-compose问题,而是您的配置问题?
  • 您是否已登录到服务器并检查容器实际上正在运行而没有任何问题? (所以他们没有在部署后死亡)。
  • 您是否尝试过从服务器到达端点? (所以ssh到 它,并尝试通过本地主机与curl或wget访问应用程序)
  • 你检查了日志 的应用程序?也许它工作后,但应用程序崩溃 或拒绝连接?尝试与docker-compose logs foobar | less

我想这不是真的具体,但没有太多与tbh去。

相关问题