Car*_*mez 2 ruby-on-rails redis sidekiq docker
错误我说,我正在尝试使用docker构建容器,但无法连接sidekiq + redis,sidekiq_1 | Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)似乎sidekiq正在尝试连接至本地主机,但是由于我正在构建“理论上” redis + sidekiq + rails + postgres容器,因此无法使用本地主机,它应该在redis映像中。
我的docker-compose.yml文件是这样的:
version: '3'
services:
postgres:
image: postgres:10.5
volumes:
- my_app-postgres:/var/lib/postgresql/data
redis:
image: redis:4.0.11
volumes:
- my_app-redis:/var/lib/redis/data
web:
build: .
command: bundle exec rails server -p 3000 -b '0.0.0.0'
ports:
- '3000:3000'
depends_on:
- postgres
- redis
volumes:
- .:/my_app
env_file:
- .env
sidekiq:
build: .
command: bundle exec sidekiq -C config/sidekiq.yml
volumes:
- .:/my_app
depends_on:
- postgres
- redis
env_file:
- .env
volumes:
my_app-postgres:
my_app-redis:
Run Code Online (Sandbox Code Playgroud)
我在日志中看到的另一个有趣的“信息”是Booting Sidekiq 4.2.10 with redis options {:url=>nil}此URL可能是问题的原因吗?
在我的开发环境中,该应用程序运行良好,我尝试对自己拥有的东西进行“ dockerize”。我该如何进行这项工作?
默认情况下,sidekiq尝试连接,127.0.0.1:6379但是您的sidekiq与redis不在同一个容器中,因此您需要将sidekiq配置为redis:6379用作redis主机,例如,使用初始化程序:
Sidekiq.configure_server do |config|
config.redis = { url: 'redis://redis:6379/12' }
end
Run Code Online (Sandbox Code Playgroud)
看一下文档以了解更多详细信息:https : //github.com/mperham/sidekiq/wiki/Using-Redis
如果您打算稍后使用Kubernetes进行部署,则可以将所有容器放入容器中,然后它们将能够通过localhost连接,因为同一Kubernetes容器中的容器共享网络空间。要直接在Kubernetes集群内的pod中编程,可以使用我最近在GitHub上开源的名为DevSpace的工具:https : //github.com/covexo/devspace
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |