当前位置: 首页 > 面试题库 >

Docker-Rails应用无法连接到链接的Postgres容器(似乎未在运行)

呼延骏俊
2023-03-14
问题内容

我一直在遵循有关如何使用Docker 设置 Rails开发环境的指南:使用Docker
设置Rails开发环境。

在此过程中,我遇到了一些麻烦,但是我设法解决了其中的大部分问题,直到运行Rails迁移的步骤为止。运行命令将docker-compose run web rake db:migrate产生以下结果:

rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

docker-compose.yml:

version: '2'
services:
  db:
    image: postgres
    volumes:
      - ./pgdata:/pgdata
    environment:
      POSTGRES_DB: myapp_development
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD:
      PGDATA: /pgdata
  web:
    build: .
    command: bundle exec rails server --port 5000 --binding 0.0.0.0
    volumes_from:
      - container:myapp-web-sync:rw
      - container:myapp-bundle-sync:rw
    volumes:
      - ./keys:/root/.ssh/
    ports:
      - "5000:5000"
    environment:
      REDIS_URL: redis://redis:6379
      GEM_HOME: /bundle
    links:
      - db
      - redis
volumes:
  myapp-web-sync:
    external: true
  myapp-bundle-sync:
    external: true

问题答案:

您尝试连接到localhost:5432,换句话说,您尝试连接到web容器,但您的要点是db。只需在应用程序中指定数据库主机即可db



 类似资料:
  • 问题内容: 我需要使用docker-compose创建Rails和Mysql容器。当我尝试使用创建容器之间的链接时,我得到 无法启动容器9b271c58cf6aecaf017dadaf5b无法链接到未运行的容器:/ puma_db_1 AS / puma_web_1 / db 档案 Docker文件 docker-compose.yml 问题答案: 容器很可能无法启动。 仅启动服务以确保其正常运行

  • 我正在使用Windows上的Docker来使用本地的postgres数据库。我制作了两个docker容器:一个用于名为pg的数据库,另一个用于名为pgadmin的pgadmin4。检查完pg后,我在172.17.0.3:5432连接了pgadmin4,它工作了。现在该编码了,但是... 我读了很多这样的问题,但我不明白。在我看来,这不像pg_hba中产生的问题。conf,因为在这种情况下,pgad

  • 问题内容: 遵循此示例:https : //docs.docker.com/engine/examples/mongodb/ 当尝试使用以下命令连接到mongoDB时:( 其中ip是boot2docker ip的名称)+ docker ps的端口号: 27017 / tcp 或-P 0.0.0.0:49155->27017/tcp 无论哪种方式,我都会收到以下错误: 警告:无法连接到ip:2701

  • 相关帖子:1)docker postgres pgadmin本地连接 2)https://coderwall.com/p/qsr3yq/postgresql-with-docker-on-os-x(在示例中没有填写“name”条目) 有两种方法来完成这个任务,我使用正式的postgres 方法一: 并使用 然后使用pgAdmin选项卡属性填充信息连接

  • 我已经创建了一个MySQL数据库的映像,并在容器中运行它。我希望它在端口3406/3407上运行,因此我调用docker run命令如下所示: 如果我看我的容器,它看起来是这样的: 我非常想连接到我的数据库现在,但我似乎不能使我的URL工作。 这是我的URL的样子:

  • 问题内容: 我有用于创建mysql映像的docker- compose文件,并将端口公开给3306,但是当我尝试安装CMS时,出现了无法连接数据库的错误。我尝试扫描端口3306,并向我显示它已打开,因此mysql正在运行。 为什么两个Docker容器彼此看不到? 这是我的docker-compose文件: 问题答案: 要连接到数据库,请使用您作为主机名提供的链接/别名。因此,您的CMS可以使用主机