2014-04-22 174 views
4

我試圖讓我的運行軌道與碼頭工人和圖的應用,它與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創建(見下文)

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 

我沒有看到一個地方,我可以把耙分貝:創建DB:DB遷移:種子命令!,如果我把它們放在Dockerfile的末尾,那麼當無花果嘗試構建應用程序時,它抱怨數據庫服務器不會退出,(無花果創建應用程序容器的時候,其他容器沒有啓動),我可以不解決這個改變fig.yml, 我的雞蛋問題在這裏,我可以得到這個工作?

我確定所有的鏈接都能正常工作,所以問題更多的是關於腳本的編排。

+0

林也在尋找答案..有這麼多的低級別教程外..但沒有中間的東西:( – Lichtamberg

+0

看看我的答案 –

+0

注肯定,但這可能有幫助... http://stackoverflow.com/questions/31572970/how-to-run-rails-migrations-and-seeding-in-amazon-elastic-beansta lk-single-conta/31573537#31573537 –

回答

1

找到了解決辦法!:

我創建了一個rake任務來包裝我需要什麼,它運行遷移,種子,並啓動軌道服務器,所以解決方法是通過這一項上圖更改命令:

命令:耙my_app應用:建立

+1

作爲補充,請查看http://www.talkingquickly.co.uk/2014/06/rails-development-environment-with-vagrant-and-docker/的底部一個使用shell腳本的配方。 – Martin

+1

@CarlosCastellanos你可以分享你的耙子任務或一些更多的細節,你如何得到這個運行。 –

+0

「我知道了,你只需要這樣做!」 –