ruby-on-rails – Docker rails迁移
发布时间:2020-12-17 02:06:22 所属栏目:百科 来源:网络整理
导读:我正在尝试使用docker和fig运行我的rails应用程序,它依赖于redis服务器,mongodb,postgres和nginx, 这是我的fig.yml的样子: pg: image: docker-index.my.com/postgres ports: - 5432redis: image: docker-index.my.com/redis ports: - 6379mongodb: image: d
我正在尝试使用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 一切正常,直到启动应用程序的时刻,因为rails初始化程序挂钩在服务器上启动然后我得到有关数据库连接的错误,数据库不存在!当然因为它不是在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 我没有看到我可以放置rake db的地方:创建db:migrate db:seed命令!,如果我把它们放在Dockerfile的末尾然后当无意中尝试构建app它抱怨数据库服务器没有退出,(在fig构建app容器的时候,其他容器没有启动),我无法修复这个改变fig.yml上的顺序, 我确信所有链接都能完美运行,所以问题更多的是编写脚本编排. 解决方法
找到了解决方案!:
我创建了一个rake任务来包装我需要的东西,它运行迁移,种子,并启动rails服务器,所以修复是通过这个更改图上的命令: 命令:rake my_app:setup (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |