Search code examples
rubycloud-foundrybuildpack

Cloud Foundry Ruby Offline Buildpack


I'm trying to get a Ruby Offline buildpack working and am running into this error when deploying an application.

2015-03-31T14:28:56.21-0600 [STG/0] OUT -------> Buildpack version 1.3.0 2015-03-31T14:28:56.22-0600 [STG/0] OUT ! 2015-03-31T14:28:56.22-0600 [STG/0] OUT ! No such file or directory - /var/vcap/data/dea_next/admin_buildpacks/fbc8ba1a-0f89-4cd4-bdc6-6b189b326ab6_f80a090fe58f5bba36a6d25dfe86220f7dfcc41d/compile-extensions/bin/translate_dependency_url https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/bundler-1.7.12.tgz 2015-03-31T14:28:56.22-0600 [STG/0] OUT !

Environment: Linux CentOS 6

Here are the steps I followed:

  • download the ZIP from https://github.com/cloudfoundry/ruby-buildpack
  • unzip locally
  • cd ruby-buildpack
  • rvm use 2.1.5
  • BUNDLE_GEMFILE=cf.Gemfile bundle
  • BUNDLE_GEMFILE=cf.Gemfile bundle exec buildpack-packager cached
  • cf create-buildpack sjw_ruby_buildpack ruby_buildpack-cached-v1.3.0.zip 11

These instructions came from https://github.com/cloudfoundry-incubator/buildpack-packager/blob/master/doc/disconnected_environments.md

I then deployed the Ruby app as follows:

  • switched to ruby 2.0.0p643 (2015-02-25 revision 49749) [x86_64-linux]
  • bundle install
  • bundle package --all
  • cf push -b sjw_ruby_buildpack
    • Failed with the above error message.

Solution

  • This was answered on the Cloud Foundry Dev Group

    https://groups.google.com/a/cloudfoundry.org/forum/?utm_medium=email&utm_source=footer#!topic/vcap-dev/9KhpUfuGprk

    Here's the relevant section:

    It seems like git submodule update --init isn't working, which is actually to be expected if you're using the "Download ZIP" button at the homepage of the ruby-buildpack repo. It sounds like that's how you got the buildpack (" - download the ZIP from https://github.com/cloudfoundry/ruby-buildpack), but Github doesn't provide you with the .git file when you download the source code this way.

    To modify the prebuilt buildpack, you could download the ruby_buildpack-cached-v1.3.0.zip file from here, unzip it, modify it, re-zip it and run the cf create-buildpack command to upload it to your Cloud Foundry deployment.

    If you need to build it entirely locally, you can try cloning the repo instead: git clone https://github.com/cloudfoundry/ruby-buildpack.git

    cd ruby-buildpack
    rm ruby_buildpack-cached-v1.3.0.zip
    git submodule update --init
    BUNDLE_GEMFILE=cf.Gemfile bundle exec buildpack-packager cached
    cf create-buildpack sjw_ruby_buildpack ruby_buildpack-cached-v1.3.0.zip 11
    

    In particular, you should expect the git submodule update --init command NOT to return "fatal: Not a git repository (or any of the parent directories): .git".

    Once that's done, try pushing your app again, specifying the buildpack with the -b flag like before, and let us know what happens.