berkshelf / vagrant-berkshelf

A Vagrant plugin to add Berkshelf integration to the Chef provisioners
Other
379 stars 100 forks source link

berks vendor copies entire local directory when vendoring Cookbooks #300

Open leefowlercu opened 8 years ago

leefowlercu commented 8 years ago

Hi,

I am using Vagrant-Berkshelf to manage application runtime dependencies in a Vagrant environment of mine. Lately I have been having an issue where my vagrant up and vagrant provision have been taking an extraordinarily long time to run, and, more specifically, take a very long time on the 'Updating Vagrant's Berkshelf' task.

I took a look at Berkshelf's shelf directory to see what could be happening and I discovered that the berkshelf that it had created was being filled with the entire contents of my project directory, including all project files (which is why it is taking so long).

Here is the output of my vagrant up: (note the ctrl-c to end the process)

Bringing machine 'local' up with 'virtualbox' provider...
==> local: Loading Berkshelf datafile...
==> local: Sharing cookbooks with VM
==> local: Checking if box 'ubuntu/trusty64' is up to date...
==> local: A newer version of the box 'ubuntu/trusty64' is available! You currently
==> local: have version '20160516.0.0'. The latest is version '20160518.0.0'. Run
==> local: `vagrant box update` to update.
==> local: Clearing any previously set forwarded ports...
==> local: Updating Vagrant's Berkshelf...
^C==> local: Waiting for cleanup before exiting...
The following berks command failed to execute:

    /usr/local/bin/berks vendor /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local --berksfile /Users/leefowler/Projects/M2R2-Visallo/Berksfile

The stdout and stderr are shown below:

    stdout: Resolving cookbook dependencies...
Fetching 'M2R2-Visallo' from source at .
Fetching cookbook index from https://supermarket.chef.io...
Using M2R2-Visallo (0.1.0) from source at .
Installing apt (3.0.0)
Installing ark (1.1.0)
Installing build-essential (4.0.0)
Installing chef_handler (1.4.0)
Installing compat_resource (12.10.3)
Installing dmg (2.4.0)
Installing git (4.5.0)
Installing homebrew (2.1.0)
Installing java (1.39.0)
Installing maven (2.2.0)
Installing mingw (1.0.0)
Installing nodejs (2.4.4)
Installing seven_zip (2.0.0)
Installing windows (1.41.0)
Installing yum (3.10.0)
Installing yum-epel (0.7.0)
Vendoring M2R2-Visallo (0.1.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/M2R2-Visallo
Vendoring apt (3.0.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/apt
Vendoring ark (1.1.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/ark
Vendoring build-essential (4.0.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/build-essential
Vendoring chef_handler (1.4.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/chef_handler
Vendoring compat_resource (12.10.3) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/compat_resource
Vendoring dmg (2.4.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/dmg
Vendoring git (4.5.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/git
Vendoring homebrew (2.1.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/homebrew
Vendoring java (1.39.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/java
Vendoring maven (2.2.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/maven
Vendoring mingw (1.0.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/mingw
Vendoring nodejs (2.4.4) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/nodejs
Vendoring seven_zip (2.0.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/seven_zip
Vendoring windows (1.41.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/windows
Vendoring yum (3.10.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/yum
Vendoring yum-epel (0.7.0) to /Users/leefowler/.berkshelf/vagrant-berkshelf/shelves/berkshelf20160518-3480-g1ccdp-local/yum-epel

    stderr: /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:1401:in `close': Interrupt
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:1401:in `open'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:1401:in `copy_file'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:483:in `copy_file'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:400:in `block in cp'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:1579:in `block in fu_each_src_dest'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:1595:in `fu_each_src_dest0'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:1577:in `fu_each_src_dest'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/fileutils.rb:399:in `cp'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/file_syncer.rb:89:in `block in sync'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/file_syncer.rb:71:in `each'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/file_syncer.rb:71:in `sync'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/berksfile.rb:671:in `block in vendor'
    from /opt/chefdk/embedded/lib/ruby/2.1.0/tmpdir.rb:88:in `mktmpdir'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/berksfile.rb:628:in `vendor'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/cli.rb:391:in `vendor'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/cli.rb:52:in `dispatch'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/lib/berkshelf/cli.rb:27:in `execute!'
    from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-4.3.0/bin/berks:5:in `<top (required)>'
    from /usr/local/bin/berks:48:in `load'
    from /usr/local/bin/berks:48:in `<main>'

It appears that you are not using the ChefDK. Please note that Vagrant Berkshelf
works best when used with the ChefDK, and other installation methods are not
officially supported.

Please download and install the latest version of the ChefDK from:

    https://downloads.chef.io/chef-dk

and follow the installation instructions. Do not forget to add the ChefDK to
your PATH.

My chef -v:

Chef Development Kit Version: 0.12.0
chef-client version: 12.8.1
berks version: 4.3.0
kitchen version: 1.8.0

My Berksfile:

source "https://supermarket.chef.io"

metadata

My metadata.rb:

name             'M2R2-Visallo'
description      'Installs/Configures M2R2-Visallo'
long_description 'Installs/Configures M2R2-Visallo'
version          '0.1.0'

depends 'java', '~> 1.39.0'
depends 'nodejs', '~> 2.4.4'
depends 'maven', '~> 2.2.0'
depends 'git', '~> 4.5.0'

My directory structure:

M2R2-Visallo
├── Berksfile
├── Berksfile.lock
├── Gemfile
├── Gemfile.lock
├── M2R2-Visallo
├── Vagrantfile
├── ashbmcwg.crt
├── attributes
├── chefignore
├── cloud-config.yml
├── libraries
├── metadata.rb
├── recipes
├── settings.xml
└── visallo

5 directories, 10 files