docker-compose rails app在使用时找不到db,但在运行时却没有

时间:2016-12-10 17:00:26

标签: ruby-on-rails postgresql docker docker-compose

我有一个简单的Rails应用程序,我试图使用Docker运行。当我运行$("#episodenext .modal-body").css({ 'overflow': 'auto', 'height': $(document).height() * 0.7 }); $("#episodenext").on("shown.bs.modal", function() { $(this).find(".modal-body").load('/content.php'); }); $("#episodenext").modal('show'); 时,它会运行,但是当我加载页面时它告诉我我的数据库不存在。即使我运行docker-compose up时它表示数据库已经存在。

搬运工-compose.yml

docker-compose run app rails db:create

./导轨/ Dockerfile

version: '2'

services:
  db:
    image: postgres 
  app:
    build: ./rails
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - ./app:/app
    ports:
      - "3000:3000"
    depends_on:
      - db

我是Docker的新手,所以我可能会遗漏一些基本的东西。

1 个答案:

答案 0 :(得分:0)

Rickkwa是正确的,db需要一些时间来稳定。

您可以通过使用以下内容的Ruby脚本来解决此问题:

begin
  retries ||= 0
  Mysql2::Client.new(host: 'db', username: 'root')
rescue
  sleep 1
  retry if (retries += 1) < 10
end