我正在尝试为使用buildpack代理的Heroku应用创建小型MQTT。要与代理建立通信通道,我使用mosquitto gem,它本身要求我在系统上安装包并构建它。
宝石有非常简单的说明:
sudo apt-get update
sudo apt-get install pkg-config cmake openssl libc-ares-dev
wget http://mosquitto.org/files/source/mosquitto-1.3.1.tar.gz
tar xzf mosquitto-1.3.1.tar.gz
cd mosquitto-1.3.1
cmake .
sudo make install
我需要一个可以在Heroku cedar应用上执行此操作的buildpack。我试了一下heroku-buildpack-mosquitto但是我失败了,我得到了一个错误。我不是贝壳专家,我不知道我在做什么。
我使用以下.buildpack
以及heroku-buildpack-multi:
https://github.com/ddollar/heroku-buildpack-apt.git
https://github.com/rolandjitsu/heroku-buildpack-mosquitto.git
https://github.com/heroku/heroku-buildpack-ruby.git
heroku-buildpack-apt的Aptfile
:
pkg-config
cmake
openssl
libc-ares-dev
我收到以下错误:
/tmp/buildpack_23cdb652-73cc-461b-b70f-ec3f386ebee1/bin/compile: line 44: /tmp/buildpack5JP7B/bin/detect: No such file or directory
我很感激任何帮助,因为我无法自己解决这个问题:)
答案 0 :(得分:2)
您的buildpack中缺少bin/detect
脚本。
这个脚本确认您推送的代码在我们的示例中是否是Ruby项目。所以你可能想试试这个:
#!/usr/bin/env bash
# bin/detect <build-dir>
if [ -f $1/Gemfile ]; then
echo "Ruby" && exit 0
else
echo "no" && exit 1
fi