工头开发与生产(轨道)

phi*_*son 19 ruby-on-rails heroku foreman

在生产与发展方面表现不同的"工头方式"是什么?那就是我们希望工头开始在开发中启动一堆东西,但是在heroku生产中我们不需要它启动(例如)solr.

Mat*_*udy 22

我遵循惯例;

  • Procfile定义所有流程
  • .foreman 设置特定的工头变量

发展:

  • .env 为每个开发人员设置环境变量
  • .env.example 设置开发的默认值
  • foreman start 启动所有流程

生产:

  • heroku config 设置环境变量
  • heroku ps:scale 打开或关闭生产所需的任何过程

这是项目的一个例子.

Procfile:

web:    bundle exec unicorn_rails -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake jobs:work
search: bundle exec rake sunspot:solr:run
Run Code Online (Sandbox Code Playgroud)

.env.example:

# default S3 bucket
S3_KEY=keykeykeykeykeykey
S3_SECRET=secretsecretsecret
S3_BUCKET=myapp-development
Run Code Online (Sandbox Code Playgroud)

.ENV

# developer's private S3 bucket
S3_KEY=mememememememememe
S3_SECRET=mysecretmysecret
S3_BUCKET=myapp-development
Run Code Online (Sandbox Code Playgroud)

.领班:

# development port is 3000
port: 3000
Run Code Online (Sandbox Code Playgroud)


Jim*_*lle 3

Foreman 采用参数来使用不同的文件 (-d) 和参数来指定要运行的内容。它还支持一个.foreman允许这些参数成为默认参数的文件。请参阅http://ddollar.github.com/foreman/了解更多信息