ruby - 如何从我的 ruby docker 应用程序连接到 postgres docker 映像?
问题描述
我有两个单独的项目。第一个是我用 ruby 编写的主要应用程序。第二个是我的 postgresql 数据库项目。我想将数据库与我的主应用程序分开。
下面是我的主要应用程序的 docker-compose.yml:
version: "3.8"
services:
web:
build:
context: .
command: bundle exec rails s -p 3000
ports:
- "3000:3000"
下面是我的database.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 映像中。
解决方案
你有几个选择:
- 我的首选方式,我认为这是推荐方式 - 将两种服务放在一个 docker compose 文件中https://docs.docker.com/compose/networking/#links
- 您可以使用主机 IP 从 Web 服务器公开 DB 端口并访问它
- 您可以在两个 docker-compose 文件中配置以使用相同的网络并为每个服务配置 IP。
推荐阅读
- python - Python 3:在某些点上没有颜色的绘图表面
- pdf-generation - 使用 Puppeteer,如何生成具有自动高度的 PDF?
- json - 如何使用 Jmeter 中的 JSON 提取器提取列表中的特定值
- string - 随机字符显示在真实硬件上而不是模拟器上
- javascript - 在 devtools 控制台更改样式参数
- c# - WhereSelectArrayIterator ToList() 导致无效的强制转换异常
- laravel - 热安装 laravel-vue-i18n-generator 包?
- java - QueryDsl SQLExpressions.datetrunc() 不起作用
- javascript - d3-ng2-service 没有导出的成员 ThresholdArraygenerator
- scala - 如何在 SBT 项目中供应商依赖项?