【发布时间】:2019-05-14 15:16:17
【问题描述】:
我是 docker rails 的新手,我正在尝试按照此处的说明在 docker 容器中实施现有的 rails 项目:https://hackernoon.com/dockerizing-an-existing-rails-postgresql-app-with-docker-compose-a30a7e1b3f40
docker-compose.yml
version: '3'
services:
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
数据库.yml
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
pool: 5
development:
<<: *default
database: myapp_development
Dockerfile
FROM ruby:2.5.3
RUN apt-get update && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
所有容器都已创建并正常运行。运行 docker-compose up 后,我可以从控制台输出中看到这一点。我什至可以连接到 Rails 服务器。但是,rails 服务器无法连接到 postgres 服务器:
我的 docker 配置中是否缺少某些内容,或者我需要为 docker 更改我的 rails 配置?
【问题讨论】:
-
我认为你需要
ports 5432:5432在docker-compose中的db下 -
docker-compose logs db显示什么?可能是因为您填充了/var/lib/postgresql/data文件夹,您的 DB 容器甚至没有启动,这可能会导致问题。
标签: ruby-on-rails postgresql docker docker-compose ruby-on-rails-5