我是编程新手,正在尝试设置rails应用程序之间的关系。我用的是docker compose和rabbitmq。这是我的代码:
Rails应用程序中控制器中的一些代码
def some_method
connection = Bunny.new(
host: 'localhost',
port: 5672,
vhost: '/',
user: 'guest',
password: 'guest')
connection.start
channel = connection.create_channel
queue = channel.queue('hello')
channel.default_exchange.publish('Hello World!', routing_key: queue.name)
puts " [x] Sent 'Hello World!'"
connection.close
end
docker-compose.yml:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: mysecretpassword
volumes:
- pgdata:/var/lib/postgresql/data
web:
build: .
command: bundle exec rails s webrick -b '0.0.0.0'
volumes:
- .:/lab2_app
ports:
- "3000:3000"
depends_on:
- db
tty: true
stdin_open: true
docker-compose.yml for rabbitmq:
version: '3'
services:
rabbitmq:
image: rabbitmq:3-management
ports:
- 5672:5672
- 15672:15672
我可以在浏览器中使用RabbitMQ管理,并且可以通过curl发送请求:卷曲http://localhost:15672=>AMQP
但我有错误";无法建立到任何配置的主机的TCP连接";当我把我的";some_方法。
我想知道是否有人能帮我:(
据我所知,当你在容器中运行它时,Rabbit实例不是rails的本地实例,而不是'localhost'。你应该使用'rabbitmq'