ruby-on-rails – Docker rails迁移

ruby-on-rails – Docker rails迁移,第1张

概述我正在尝试使用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: 我正在尝试使用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: 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迁移所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1269836.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存