2017-01-26 10 views
0

私はPostgreSQL、Sidekiq(したがってRedis)とPumaサーバーを使用しているこのRails 4 APIを持っています。Heroku:Dockerized Rails APIのデプロイ

私はそれをHerokuにデプロイする必要があり、私はそれを正常に展開しました。doc。しかし、まず、なぜ私はWebプロセスが実行されていないと言っているのか分かりません。

2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes= 

私は手動でdynoをオンにしなければなりませんでした。

そして、そのHerokuのログはただのAppは、私がために他のチュートリアルを前にした何

2010-10-06T21:51:12-07:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes= 

をクラッシュしたことを私に言っておく以来です:config/puma.rbファイル

設定し
workers Integer(ENV['WEB_CONCURRENCY'] || 2) 
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) 
threads threads_count, threads_count 

preload_app! 

rackup  DefaultRackup 
port  ENV['PORT']  || 3000 
environment ENV['RACK_ENV'] || 'development' 

on_worker_boot do 
    # Worker specific setup for Rails 4.1+ 
    # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot 
    ActiveRecord::Base.establish_connection 
end 

を設定

Procfile

web: bundle exec puma -C config/puma.rb 

app.json

{ 
    "name": "Cool name", 
    "description": "Really meaningful description", 
    "image": "heroku/ruby", 
    "addons": [ 
    "heroku-postgresql" 
    ] 
} 

マイdocker-compose.yml

web: 
    build: . 
    command: puma 
    ports: 
    - "9292:9292" 
    links: 
    - db 
    - redis 
    volumes: 
    - .:/app_name 
    stdin_open: true 
    tty: true 

sidekiq: 
    build: . 
    volumes: 
    - .:/app_name 
    command: bundle exec sidekiq 
    links: 
    - db 
    - redis 
    env_file: 
    - .env 
db: 
    image: postgres 

redis: 
    image: redis 

.envファイルを設定し

REDIS_HOST=redis://redis:6379/0 

だから、誰もができるそれがHerokuのにsuccessfuly展開のための私のセットアップをwronfが、されているものを私に言うことができますとにかく走っていない?

答えて

1

現在、Herokuのコンテナベースのアプローチは、Docker Composeワークフローと完全に一致しません。

ドッカーファイルはどのように見えますか? Dockerを使用してデプロイする場合、Procfileはまったく使用されないため、DockerfileにCMDを使用してstartコマンドを追加する必要があります。

CMD bundle exec puma -C config/puma.rb 

これもSidekiqを実行するために、あなたは異なるCMDで別のドッカーイメージを構築する必要があることを意味します。 HerokuのCLIでそれを達成するには、別の(サブ)ディレクトリに2番目のDockerfileが必要です。

+0

申し訳ありませんが、私は今あなたの答えを試すことはできません。しかし、とにかくあなたの助けが本当に高く評価されたので私はあなたの答えをアップしました。ありがとうございました! – VAD