heroku-buildpack-apt

by EntropyAu

GitHub Readme.md

ATK's heroku-buildpack-apt

Adds support for apt-based dependencies during both compile and runtime.

This repo (originally forked from ddollar/heroku-buildpack-apt ), was used to install dependencies during the Heroku build process for migrating The Feed app from Heroku's Cedar-10 to Cedar-14 stack. The following apache dependencies were absent in Cedar-14 (see Heroku's list of Ubuntu Packages on Cedar and Cedar-14) so apache wouldn't run until these dependencies could be installed & found when starting the app:

libjpeg62
libssl0.9.8 (which includes a dependency, libcrypto.so.0.9.8)

Usage

This buildpack works in conjuction with ATK's heroku-buildpack-multi buildpack.

heroku-buildpack-multi loads on your app's buildpacks that are specified inside its .buildpacks file, such as https://github.com/Americastestkitchen/heroku-buildpack-apt and https://github.com/Americastestkitchen/heroku-wordpress-php as in the ATK's Feed app

I removed the original test folder which contained Aptfile & .buildpacks files to avoid confusion about how and where they are used as they are located on app's code base in the root of the project folder: see them in ATK's Feed app


Original examples

The following is from original repo instructions from ddollar/heroku-buildpack-apt. KEEP IN MIND that they had originally included samples of test/Aptfile & test/.buildpacks just for explanatory purposes which do not actually operate from within THIS buildpack's codebase, ie you still need an app that calls on this buildpack to install dependencies.

Aptfile

libpq-dev
http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_linux-precise-amd64.deb

.buildpacks

https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-ruby

Gemfile

source "https://rubygems.org"
gem "pg"

Compile with Anvil

$ heroku plugins:install https://github.com/ddollar/heroku-build

$ heroku create apt-pg-test

$ heroku build . -b ddollar/multi -r

Checking for app files to sync... done, 2 files needed
Uploading: 100.0%
Launching build process... done
Preparing app for compilation... done
Fetching buildpack... done
Detecting buildpack... done, Multipack
Fetching cache... done
Compiling app...
=====> Downloading Buildpack: https://github.com/ddollar/heroku-buildpack-apt
=====> Detected Framework: Apt
  Updating apt caches
  ...
  Installing libpq-dev_8.4.17-0ubuntu10.04_amd64.deb
  Installing libpq5_8.4.17-0ubuntu10.04_amd64.deb
  Writing profile script
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-ruby
=====> Detected Framework: Ruby
  Installing dependencies using Bundler version 1.3.2
  ...
Putting cache... done
Creating slug... done
Uploading slug... done
Success, slug is https://api.anvilworks.org/slugs/00000000-0000-0000-0000-0000000000.tgz

Check out the PG library version

$ heroku run bash -a apt-pg-test
~ $ irb
irb(main):001:0> require "pg"
=> true
irb(main):002:0> PG::version_string
=> "PG 0.15.1"

License

MIT