Gemfile git branch for Beanstalk unable to bundle install

In my Gemfile I have

gem 'slim', :git => 'git://github.com/brennancheung/slim.git', :branch => 'angularjs_support'

which is a branch of the slim gem required for me to run AngularJS correctly with my views. I've pushed my code to my beanstalk application but am unable to bundle install according to the logs shown below...

sh: git: command not found
Git error: command `git clone 'git://github.com/brennancheung/slim.git'
"/usr/share/ruby/1.9/gems/1.9.1/cache/bundler/git/slim-700ed452e752ccb6baf9de9d0a46fbded8bb2da5"
--bare --no-hardlinks` in directory /var/app/ondeck has failed.

I'm new to Beanstalk and have no idea how to fix this. Any help on how to get bundle to install successfully would be greatly appreciated. Thanks.

Answers


Since git is not installed on by default on EC2 instance, you would have to find a workaround solution:

a. Install git on instance with configuration file and command. It is the most obvious way to solve the problem, although not be the most efficient.

b. Clone slim repository into your project, so it will be deployed together. Seems that slim is not being actively developed lately, so having the copy in your project might not be a bad idea. It protects you from github.com being down, yet you will have extra files to carry around.

c. Use configuration file and commands to pull the data from github.com directly with http. Too many files to work with, and also dependency on third party service.

d. Use a combination of above. Clone slim repository and copy files to S3. Use configuration and commands to copy files from S3 to your instance. It seems like the most elegant and efficient way to solve the problem.

It might look something like:

$ cat .ebextensions/myapp.config

commands:
    10-copy-slim-from-s3
        command: "aws s3 cp s3://mybucket/slim slim --recursive"

Need Your Help

Pick the values from the corresponding max matrix

matlab matrix

I don't think I asked the question right, so this example will make it easier for you to understand what I mean.