Docker轨道迁移

我试图让docker和fig运行我的rails应用程序,它也包含redis服务器,mongodb,postgres和nginx,下面是我的fig.yml的样子:

pg: image: docker-index.my.com/postgres ports: - 5432 redis: image: docker-index.my.com/redis ports: - 6379 mongodb: image: docker-index.my.com/mongodb ports: - 27017 app: build: . command: bundle exec rails s volumes: - .:/beesor ports: - 3000:3000 links: - pg - redis - mongodb environment: RAILS_ENV: production 

一切工作正常,直到启动应用程序的时刻,因为轨道初始化器钩在服务器启动,然后我得到有关数据库连接的错误,数据库不存在! 当然,因为它没有在Dockerfile上创build(见下文)

Dockerfile内容:

 # DOCKER-VERSION 0.10.0 FROM docker-index.my.com/ruby:1.9.3 MAINTAINER my.com RUN 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-essential RUN mkdir /my_app WORKDIR /my_app RUN gem install bundler ADD Gemfile /my_app/Gemfile ADD Gemfile.lock /my_app/Gemfile.lock RUN bundle install RUN bundle pack --all ADD . /my_app 

我没有看到一个地方,我可以把rake db:create db:migrate db:seed命令!,如果我把它们放在Dockerfile的末尾,那么当fig试图构build应用程序时,它抱怨数据库服务器没有退出,(无花果build立应用程序容器的时间,其他容器不启动),我无法修复这改变fig.yml上的顺序,我在这里面临鸡蛋的问题,我可以得到这个工作?

我相信所有的链接都能正常工作,所以问题更多的是关于脚本的编排。

find解决scheme!:

我创build了一个rake任务来包装我所需要的东西,它运行迁移,种子,并启动rails服务器,所以修复是通过这个改变命令:

命令:rake my_app:setup