This moves both the Mount type and mountinfo into a single mount
package.
This also opens up the root of the repo to hold the containerd client
implementation.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
For LinuxKit we build Go executables as static pie binaries, so
need to be able to add extra build and link flags.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Add the ability to set buildtags and make note in README.md about the
btrfs build tag to turn off building the btrfs snapshot support.
Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
Currently does not build on any other platform, so add them in when
it builds.
With this Darwin builds without any errors.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This setup will now correctly set the version number from the git tag.
When using `--version`, we will see the binary name, the package it was
built from and a git hash based on the tag:
```console
$./bin/dist -v
./bin/dist github.com/docker/containerd 0b45d91.m
```
Note that in the above example, if we set a tag of `v1.0.0-dev`, that
will show up in the version number, as follows:
```console
$./bin/dist -v
./bin/dist github.com/docker/containerd v1.0.0-dev
```
Once commits are made past that tag, the version number will be
expressed relative to that tag and include a git hash:
```console
$./bin/dist -v
./bin/dist github.com/docker/containerd v1.0.0-dev-1-g7953e96.m
```
Some these examples include a `.m` postfix. This indicates that the
binary was build from a source tree with local modifications.
We can add a dev tag to start getting 1.0 version numbers for test
builds.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
After trying to explain the complexities of developing with protobuf, I
have now created a command that correctly calculates the import paths
for each package and runs the protobuf command.
The Makefile has been updated accordingly, expect we now no longer use
`go generate`. A new target `protos` has been defined. We alias the two,
for the lazy. We leave `go generate` in place for cases where we will
actually use `go generate`.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
Generation is likely broken, but the Makefile linter now passes. Another
pass will have a fully working toolchain.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
This adds Makefile and cmd/protoc-gen-gogoctrd for generating protobufs.
More adjustments are required and the default target has been stubbed
out for now.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
* Micro benchmarks: use container.Runtime to kill container
Signed-off-by: Julio Montes <julio.montes@intel.com>
* Micro benchmarks: add support for multiples runtimes
Signed-off-by: Julio Montes <julio.montes@intel.com>
This is the first in a series of micro benchmarks for containerd.
Performance measurement will use containerd objects and methods
that are not dependent on the grpc API and dont require the daemon
to the running. Test will require containerd-shim and runc.
The motivation is to understand the baseline performance at the lowest
containerd layer. A natural extension to this effort would be to write
macro benchmarks which would include API and daemon.
Note:
- Currently measures only one workload (busybox sh) start times. Will
add other bundles and args soon.
- Can use integration-test utils for bundle processing. However, json
marshal/unmarshal is currently timing out standard benchmark times. So
going with default spec for now.
Sample run:
BenchmarkBusyboxSh-4 / # / # / # 2 576013841 ns/op
ok github.com/docker/containerd/runtime 1.800s
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
This removes most of the deps on the larger packages for the shim and
reduces the binary size and memory footprint from a 7.1mb binary to a
2.6mb binary.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This allows us to build a static binary for all three binaries, from the make file using ``make static``.
Signed-off-by: Ken Cochrane <KenCochrane@gmail.com>