如何在Rails应用程序中将sidekiq放入Docker? [英] How to put sidekiq into Docker in a rails application?
本文介绍了如何在Rails应用程序中将sidekiq放入Docker?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用rails,sidekiq和docker。
I am using rails, sidekiq and docker.
我的docker-compose.yml文件
My docker-compose.yml file
sidekiq:
build: .
command: bundle exec sidekiq -C config/sidekiq.yml
links:
- db
- redis
config / sidekiq.yml文件
config/sidekiq.yml file
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log
:queues:
- default
运行 docker-compose up
后,sidekiq服务无法正确启动。
After I run docker-compose up
, the sidekiq service can not start rightly.
sidekiq_1 | No such file or directory @ rb_sysopen - /testapp/tmp/pids/sidekiq.pid
sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:365:in `initialize'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:365:in `open'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:365:in `write_pid'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:42:in `parse'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/bin/sidekiq:12:in `<top (required)>'
sidekiq_1 | /usr/local/bundle/bin/sidekiq:16:in `load'
sidekiq_1 | /usr/local/bundle/bin/sidekiq:16:in `<main>'
testapp_sidekiq_1 exited with code 1
推荐答案
尝试安装卷。您的 docker-compose
文件应如下所示(以PosgtreSQL作为数据库):
Try to mount the volumes. Your docker-compose
file should look like this (with PosgtreSQL as database) :
web:
build: .
volumes:
- .:/myapp
links:
- db
- redis
ports:
- "3000:3000"
command: bundle exec rails server -b 0.0.0.0
sidekiq:
build: .
volumes:
- .:/myapp
links:
- db
- redis
command: bundle exec sidekiq
db:
image: postgres
redis:
image: redis
这篇关于如何在Rails应用程序中将sidekiq放入Docker?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文