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

93 lines
2.2 KiB
Markdown

---
title: Building Weave
layout: 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:
```bash
$ cd $GOPATH
$ WEAVE=github.com/zettio/weave
$ git clone https://$WEAVE src/$WEAVE
$ cd src/$WEAVE
```
Then simply run
```bash
$ 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](https://www.vagrantup.com/downloads.html) to run a
development environment. You'll probably need to install
[VirtualBox](https://www.virtualbox.org/wiki/Downloads) too, for
Vagrant to run VMs in.
First, check out the code:
```bash
$ 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
```bash
$ 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
```bash
$ 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
```bash
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.