Feature: Add Sidekiq docker (#443)
* update db:schema due to migration * reduce default concurrency for redis connection limit * Allow auto update packages in the development mode without building image * add sidekiq support to docker-compose * Pass sidekiq cofig file * passed the env file in base image rather than separately in rails, web packer and sidekiq in docker-compose * removed un-necessary changes in schema * changed concurrency to finer values * removed default size set in sidekiq redis config * Added the sidekiq config option in Procfile.dev Co-authored-by: Sony Mathew <ynos1234@gmail.com>
This commit is contained in:
parent
8cf135f2db
commit
6325acd183
5 changed files with 32 additions and 8 deletions
|
@ -1,3 +1,3 @@
|
|||
backend: bin/rails s -p 3000
|
||||
frontend: bin/webpack-dev-server
|
||||
worker: bundle exec sidekiq
|
||||
worker: bundle exec sidekiq -C config/sidekiq.yml
|
||||
|
|
|
@ -2,10 +2,11 @@ sidekiq_redis_config = {
|
|||
url: ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379'),
|
||||
password: ENV.fetch('REDIS_PASSWORD', nil)
|
||||
}
|
||||
|
||||
Sidekiq.configure_client do |config|
|
||||
config.redis = sidekiq_redis_config
|
||||
config.redis = sidekiq_redis_config.merge(size: 5)
|
||||
end
|
||||
|
||||
Sidekiq.configure_server do |config|
|
||||
config.redis = sidekiq_redis_config
|
||||
config.redis = sidekiq_redis_config.merge(size: 10)
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# pick it up automatically.
|
||||
---
|
||||
:verbose: false
|
||||
:concurrency: 10
|
||||
:concurrency: 3
|
||||
:timeout: 25
|
||||
|
||||
# Sidekiq will run this file through ERB when reading it so you can
|
||||
|
@ -18,6 +18,6 @@
|
|||
|
||||
# you can override concurrency based on environment
|
||||
production:
|
||||
:concurrency: 3
|
||||
:concurrency: 10
|
||||
staging:
|
||||
:concurrency: 15
|
||||
:concurrency: 5
|
||||
|
|
|
@ -13,6 +13,7 @@ services:
|
|||
tty: true
|
||||
stdin_open: true
|
||||
image: chatwoot:development
|
||||
env_file: .env
|
||||
|
||||
rails:
|
||||
<<: *base
|
||||
|
@ -25,14 +26,15 @@ services:
|
|||
- node_modules:/app/node_modules
|
||||
- packs:/app/public/packs
|
||||
- cache:/app/tmp/cache
|
||||
- bundle:/usr/local/bundle
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
- webpack
|
||||
- mailhog
|
||||
- sidekiq
|
||||
ports:
|
||||
- 3000:3000
|
||||
env_file: .env
|
||||
environment:
|
||||
- WEBPACKER_DEV_SERVER_HOST=webpack
|
||||
- NODE_ENV=development
|
||||
|
@ -40,6 +42,24 @@ services:
|
|||
entrypoint: docker/entrypoints/rails.sh
|
||||
command: ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"]
|
||||
|
||||
sidekiq:
|
||||
<<: *base
|
||||
image: chatwoot-rails:development
|
||||
volumes:
|
||||
- ./:/app:delegated
|
||||
- node_modules:/app/node_modules
|
||||
- packs:/app/public/packs
|
||||
- cache:/app/tmp/cache
|
||||
- bundle:/usr/local/bundle
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
- mailhog
|
||||
environment:
|
||||
- NODE_ENV=development
|
||||
- RAILS_ENV=development
|
||||
command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"]
|
||||
|
||||
webpack:
|
||||
<<: *base
|
||||
build:
|
||||
|
@ -51,9 +71,9 @@ services:
|
|||
- node_modules:/app/node_modules # Node modules shared across containers
|
||||
- packs:/app/public/packs
|
||||
- cache:/app/tmp/cache
|
||||
- bundle:/usr/local/bundle
|
||||
ports:
|
||||
- "3035" # Webpack dev server
|
||||
env_file: .env
|
||||
environment:
|
||||
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0
|
||||
- NODE_ENV=development
|
||||
|
@ -95,3 +115,4 @@ volumes:
|
|||
packs:
|
||||
node_modules:
|
||||
cache:
|
||||
bundle:
|
||||
|
|
|
@ -17,6 +17,8 @@ done
|
|||
|
||||
echo "Database ready to accept connections."
|
||||
|
||||
bundle install
|
||||
|
||||
BUNDLE="bundle check"
|
||||
|
||||
until $BUNDLE
|
||||
|
|
Loading…
Reference in a new issue