gpt4 book ai didi

ruby-on-rails - 两个 docker 容器如何相互通信?

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:53 25 4
gpt4 key购买 nike

我有两个容器,想相互通信。容器“A”由 discourse.org 应用程序和端口 5432 上的 PostgreSQL 数据库组成,容器“B”具有在端口 1000 上运行的 ROR 应用程序。我想使用 ROR 应用程序将数据库连接到 PostgreSQL(位于另一个容器中)。如何连接ROR应用与PostgreSQL数据库?

RoR 应用程序,docker-compose.yml

version: '2'
services:
app:
build: .
command: bundle exec rails s -p 9000 -b '0.0.0.0'
volumes:
- ".:/slackcron"
ports:
- "9000:9000"

RoR 应用程序,database.yml

development:
<<: *default
database: discourse
username: muzammil
password: '123'
host: 0.0.0.0
port: 5432

docker

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
92a9cb961e56 slackcroncom_app "bundle exec rails..." 47 seconds ago Up 46 seconds 0.0.0.0:9000->9000/tcp slackcroncom_app_1
b727c2d0d5ba local_discourse/app "/sbin/boot" 10 minutes ago Up 10 minutes 0.0.0.0:443->443/tcp, 0.0.0.0:5432->5432/tcp, 0.0.0.0:8080->80/tcp app

最佳答案

将数据库放入 docker-compose.yml 并在您的应用中添加指向它的链接

version: '2'
services:
db:
container_name: db
image: postgres:9.4.1
ports:
- "5555:5555"
app:
container_name: app
build: .
command: rails server --port 3000 --binding 0.0.0.0
ports:
- "3000:3000"
links:
- hobover_db
volumes:
- .:/app

并在 database.yml 中将您的容器名称作为主机:

development: &default
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: postgres
password:
host: db

关于ruby-on-rails - 两个 docker 容器如何相互通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com