Files
weave/site/building.md
T
Matthias Radestock 5b6dca6436 building weave requires a recent docker
We know for sure it builds with 1.3.0 and not 1.0.1. I can't be
bothered to check every version inbetween, so let's just say we
require 1.3.0.

Closes #220.
2014-11-23 11:04:45 +00:00

2.2 KiB

title, layout
title layout
Building Weave default

NB This is only necessary if you want to work on the weave code.

Building directly on Linux

You can work on weave without using a VM if you are running the docker daemon outside a VM. (These instructions have only been tested on Ubuntu.)

To build weave you need libpcap-dev and docker (version 1.3.0 or later) installed. And go (and git and hg to fetch dependencies).

The package name is github.com/zettio/weave, so assuming $GOPATH is set:

$ cd $GOPATH
$ WEAVE=github.com/zettio/weave
$ git clone https://$WEAVE src/$WEAVE
$ cd src/$WEAVE

Then simply run

$ make

This will build the weave router, produce a docker image zettio/weave and export that image to /var/tmp/weave.tar.

Building using Vagrant

If you aren't running Linux, or otherwise don't want to run the docker daemon outside a VM, you can use Vagrant to run a development environment. You'll probably need to install VirtualBox too, for Vagrant to run VMs in.

First, check out the code:

$ git clone https://github.com/zettio/weave
$ cd weave

The Vagrantfile in the top directory constructs a VM that has

  • docker installed
  • go tools installed
  • weave dependencies installed
  • $GOPATH set to ~
  • the local working directory mapped as a synced folder into the right place in $GOPATH

Once you are in the working directory you can issue

$ vagrant up

and wait for a while (don't worry, the long download and package installation is done just once). The working directory is sync'ed with ~/src/github.com/zettio/weave on the VM, so you can edit files and use git and so on in the regular filesystem.

To build and run the code, you need to use the VM. To log in and build the weave image, do

$ vagrant ssh
vm$ cd src/github.com/zettio/weave
vm$ make

The docker daemon is also running in this VM, so you can then do

vm$ sudo ./weave launch
vm$ docker ps

and so on.

You can provide extra Vagrant configuration by putting a file Vagrant.local in the same place as Vagrantfile; for instance, to forward additional ports.