rabbitmq - 在 travis 构建设置中声明 rabbitmq 交换
问题描述
在执行集成测试之前,我想在 Travis 环境中设置一些 RabbitMQ 交换。
.travis.yml
services:
- rabbitmq
before_script:
- src/it/bin/configure_rabbitmq.sh
configure_rabbitmq.sh
#!/usr/bin/env bash
if [ -f ./rabbitmqadmin ]; then
echo "rabbitmqadmin already present"
else
wget http://localhost:15672/cli/rabbitmqadmin
chmod +x rabbitmqadmin
fi
./rabbitmqadmin declare vhost name=guest
for r in a b c d e; do
./rabbitmqadmin --vhost=guest declare exchange name=set-$r-testing type=fanout durable=true -u guest -p guest
done
失败日志
$ src/it/bin/configure_rabbitmq.sh
--2018-08-31 01:56:05-- http://localhost:15672/cli/rabbitmqadmin
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:15672... connected.
HTTP request sent, awaiting response... 200 OK
Length: 37698 (37K) [application/octet-stream]
Saving to: ‘rabbitmqadmin’
0K .......... .......... .......... ...... 100% 181K=0.2s
2018-08-31 01:56:06 (181 KB/s) - ‘rabbitmqadmin’ saved [37698/37698]
vhost declared
*** Access refused: /api/exchanges/guest/set-a-testing
*** Access refused: /api/exchanges/guest/set-b-testing
*** Access refused: /api/exchanges/guest/set-c-testing
*** Access refused: /api/exchanges/guest/set-d-testing
*** Access refused: /api/exchanges/guest/set-e-testing
The command "src/it/bin/configure_rabbitmq.sh" failed and exited with 1 during .
是什么阻止了我创建这些交易所的授权?
解决方案
RabbitMQ 需要 setuid 标志,因此您只能在标准、OS X 或 Trusty 基础架构上运行 RabbitMQ(即,您的 .travis.yml 必须包含 sudo: required)。
添加sudo: required
可能会解决此问题。
推荐阅读
- react-native - 图像未显示在我的 react-native-maps 调用组件中。它只显示一个空矩形?
- angularjs - Angular 项目中的动态文件导入
- ffmpeg - FFMPEG RTMP 流录制超时
- c# - 为“玩家”分配了不必要的值
- php - 与 PHPUnit 一起使用时未检测到 PhpStorm 调试器扩展
- ios - 快速获取包含视图的单元格的索引路径
- php - 未定义变量:用户(查看:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php)
- c# - 如何从特定会话 Identity Server 4、.Net Core 中注销用户?
- css - 修改 readthedown 降价
- menu - 菜单 - 专注于鼠标