gvisor/tools/vm
Pratik raj b9d9418334 optimize size and time using "--no-cache-dir"
Using "--no-cache-dir" flag in pip install ,make sure dowloaded packages
by pip don't cached on system . This is a best practise which make sure
to fetch ftom repo instead of using local cached one . Further , in case
of Docker Containers , by restricing caching , we can reduce image size.
In term of stats , it depends upon the number of python packages
multiplied by their respective size . e.g for heavy packages with a lot
of dependencies it reduce a lot by don't caching pip packages.

Further , more detail information can be found at

https://medium.com/sciforce/strategies-of-docker-images-optimization-2ca9cc5719b6
2020-07-25 13:26:52 +05:30
..
ubuntu1604 optimize size and time using "--no-cache-dir" 2020-07-25 13:26:52 +05:30
ubuntu1804 Add a functional vm_test for root_test. 2020-04-20 15:48:27 -07:00
BUILD Add a functional vm_test for root_test. 2020-04-20 15:48:27 -07:00
README.md Fix errors not getting caught when building vm image. 2020-07-15 12:20:23 -07:00
build.sh Update vm scripts to handle existing kbuilder user. 2020-05-15 10:09:54 -07:00
defs.bzl Fix errors not getting caught when building vm image. 2020-07-15 12:20:23 -07:00
execute.sh Add a functional vm_test for root_test. 2020-04-20 15:48:27 -07:00
test.cc Add a functional vm_test for root_test. 2020-04-20 15:48:27 -07:00
zone.sh Add a functional vm_test for root_test. 2020-04-20 15:48:27 -07:00

README.md

VM Images & Tests

All commands in this directory require the gcloud project to be set.

For example: gcloud config set project gvisor-kokoro-testing.

Images can be generated by using the vm_image rule. This rule will generate a binary target that builds an image in an idempotent way, and can be referenced from other rules.

For example:

vm_image(
    name = "ubuntu",
    project = "ubuntu-1604-lts",
    family = "ubuntu-os-cloud",
    scripts = [
        "script.sh",
        "other.sh",
    ],
)

These images can be built manually by executing the target. The output on stdout will be the image id (in the current project).

For example:

$ bazel build :ubuntu

Images are always named per the hash of all the hermetic input scripts. This allows images to be memoized quickly and easily.

The vm_test rule can be used to execute a command remotely. This is still under development however, and will likely change over time.

For example:

vm_test(
    name = "mycommand",
    image = ":ubuntu",
    targets = [":test"],
)