
这是我的fig.yml的样子:
pg: image: docker-index.my.com/postgres ports: - 5432redis: image: docker-index.my.com/redis ports: - 6379mongodb: image: docker-index.my.com/mongodb ports: - 27017app: build: . command: bundle exec rails s volumes: - .:/beesor ports: - 3000:3000 links: - pg - redis - mongodb environment: RAILS_ENV: production
一切正常,直到启动应用程序的时刻,因为rails初始化程序挂钩在服务器上启动然后我得到有关数据库连接的错误,数据库不存在!当然因为它不是在Dockerfile上创建的(见下文)
Dockerfile内容:
# DOCKER-VERSION 0.10.0FROM docker-index.my.com/ruby:1.9.3MAINTAINER my.comRUN apt-get update -qq && apt-get install -y git-core xvfb curl nodeJs libqt4-dev libgtk2.0-0 libgtkmm-3.0-1 libnotify4 sqlite3 libsqlite3-dev graphicsmagick imagemagick subversion libpq-dev libxml2-dev libxslt-dev git build-essentialRUN mkdir /my_appworkdir /my_appRUN gem install bundlerADD Gemfile /my_app/GemfileADD Gemfile.lock /my_app/Gemfile.lockRUN bundle installRUN bundle pack --allADD . /my_app
我没有看到我可以放置rake db的地方:创建db:migrate db:seed命令!,如果我把它们放在Dockerfile的末尾然后当无意中尝试构建app它抱怨数据库服务器没有退出,(在fig构建app容器的时候,其他容器没有启动),我无法修复这个改变fig.yml上的顺序,
我在这里面临鸡蛋问题,我能让这个人工作吗?
我确信所有链接都能完美运行,所以问题更多的是编写脚本编排.
解决方法 找到了解决方案!:我创建了一个rake任务来包装我需要的东西,它运行迁移,种子,并启动rails服务器,所以修复是通过这个更改图上的命令:
命令:rake my_app:setup
总结以上是内存溢出为你收集整理的ruby-on-rails – Docker rails迁移全部内容,希望文章能够帮你解决ruby-on-rails – Docker rails迁移所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)