我想在 Heroku Ruby 项目中使用AWS CLI(主要是与来自 ruby 应用程序的瘦包装器一起使用)。
是否有任何标准方法可以使用 Gemfile 将此类附加软件安装到现有应用程序中?
以下是对我有用的步骤:
1) 使用buildpack-multi为 ruby 和 python 安装 buildpack:
heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
echo "https://github.com/heroku/heroku-buildpack-ruby" >> .buildpacks
echo "https://github.com/heroku/heroku-buildpack-python" >> .buildpacks
echo "web: bundle exec rails server -p $PORT" > Procfile
2)添加一个requirements.txt
文件到项目的根目录,包含所需的 pip 包:
echo "awscli" >> requirements.txt
3) 部署到 Heroku
git add .buildpacks requirements.txt Procfile
git commit -a -m "use buildpacks for ruby and python, install aws cli"
git push heroku
这工作得很好,允许我从我的 ruby 应用程序中使用我的 aws 脚本。正如向我指出的那样,从长远来看,使用雾可能是更好的解决方案。
你可以使用 Docker 来为 Heroku 应用程序提供东西。
添加 Dockerfile
FROM ubuntu:14.04
COPY . /app
然后构建一个镜像并运行一个容器:
$ docker build .
$ docker run -it $image_id bash
# apt-get update && apt-get install jq
现在您可以从另一个终端复制数据:
$ docker cp $container_id:/usr/bin/jq .
该aws-cli
工具比较复杂,因为它需要一个完整的 Python 环境。