For developers, it may be faster to [build locally](#build-locally).
- `KUBERNETES_CONTRIB=mesos` - enables building of the contrib/mesos binaries
- `build/run.sh` - executes a command in the build container
- `build-go.sh` - builds the Go binaries for the current architecture (linux/amd64 when in a docker container)
1.[Optional] Build docker images
1.[Optional] Build docker images
The following docker images are built as part of `./cluster/kube-up.sh`, but it may make sense to build them manually
The following docker images are built as part of `./cluster/kube-up.sh`, but it may make sense to build them manually the first time because it may take a while.
the first time because it may take a while. In the future some of these may be hosted publicly, but you will always
need to at least rebuild the Kubernetes-Mesos image when using locally built binaries.
Test image includes all the dependencies required for running e2e tests.
1. Test image includes all the dependencies required for running e2e tests.
```
```
./cluster/mesos/docker/test/build.sh
./cluster/mesos/docker/test/build.sh
```
```
Kubernetes-Mesos image includes the compiled linux binaries.
In the future, this image may be available to download. It doesn't contain anything specific to the current release, except its build dependencies.
```
1. Kubernetes-Mesos image includes the compiled linux binaries.
./cluster/mesos/docker/km/build.sh
```
```
./cluster/mesos/docker/km/build.sh
```
This image needs to be built every time you recompile the server binaries.
1.[Optional] Configure Mesos resources
1.[Optional] Configure Mesos resources
...
@@ -297,6 +299,30 @@ ex: `./cluster/kubectl.sh get pods`
...
@@ -297,6 +299,30 @@ ex: `./cluster/kubectl.sh get pods`
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker --rm martin/docker-cleanup-volumes
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker --rm martin/docker-cleanup-volumes
```
```
### Build Locally
The steps above tell you how to build in a container, for minimal local dependencies. But if you have Go and Make installed you can build locally much faster:
```
KUBERNETES_CONTRIB=mesos make
```
However, if you're not on linux, you'll still need to compile the linux/amd64 server binaries:
The above two steps should be significantly faster than cross-compiling a whole new release for every supported platform (which is what `./build/release.sh` does).
Breakdown:
-`KUBERNETES_CONTRIB=mesos` - enables building of the contrib/mesos binaries
-`hack/build-go.sh` - builds the Go binaries for the current architecture (linux/amd64 when in a docker container)
-`make` - delegates to `hack/build-go.sh`
-`build/run.sh` - executes a command in the build container
-`build/release.sh` - cross compiles Kubernetes for all supported architectures and operating systems (slow)