如何从我的ruby docker应用程序连接到postgres docker映像?

时间:2020-05-06 08:21:01

标签: ruby postgresql docker docker-compose

我有两个单独的项目。第一个是我的主要应用程序,它是用红宝石编写的。第二个是我的postgresql数据库项目。我想将数据库与主应用程序分开。

下面是我的主应用程序的docker-compose.yml:

version: "3.8"

services:
  web:
    build:
      context: .
    command: bundle exec rails s -p 3000
    ports:
      - "3000:3000"

下面是我的数据库。yml:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: forbinary_cms_development
  username: postgres
  password: password
  host: localhost

以下是我的postgres项目的docker-compose.yml:

version: "3.8"
services:
  db:
    image: postgres:10.10
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
volumes: 
     postgres-data:

现在我的问题是我如何将主应用程序Docker映像与此postgres docker映像连接?我想将主应用程序和数据库都保留在单独的Docker映像中。

1 个答案:

答案 0 :(得分:1)

您有几种选择:

  1. 我首选的方式,我认为这是推荐的方式-将两种服务都放在一个docker compose文件https://docs.docker.com/compose/networking/#links
  2. 您可以公开DB端口并使用主机IP从Web服务器访问它
  3. 您可以在两个docker-compose文件中配置为使用相同的网络,并为每个服务配置IP。