Skip to content
This repository has been archived by the owner on May 6, 2020. It is now read-only.

clearcontainers/packaging

Repository files navigation

The Clear Containers packages are available via Open Build Service to allow interested parties the opportunity to try out the technology.

When the runtime or any of its components are updated, we release a set of packages, via OBS

Visit our repository at:

  • runtime: Clear Containers 3.0 OCI compatible runtime.
  • proxy: Hypervisor based containers proxy
  • shim: Hypervisor based containers shim
  • clear-containers-image: Includes the mini-OS required to run Clear Containers.
  • clear-containers-selinux: Includes the SELinux policy module needed to run Clear Containers in environments with SELinux enabled.
  • kernel: Includes patches to build an optimized linux kernel required to run Clear Containers
  • qemu-lite: Includes an optimized version of the QEMU hypervisor.

Any user can build their own Clear Containers packages using the source files provided in this repository, either by using the OBS platform or their own machines using the osc (Open Build Service command line tool).

In this repository, a Dockerfile is provided to build a container that has all the tools needed to perform local builds. Use the following instructions to build Clear Containers packages within the container:

NOTES:

When local building, a prompt will pop up asking for OBS credentials for the first time, the osc tool will contact the OBS API for retrieving the current OBS revision of a given package and the buildroot packages. If you don't have an account, you can create one from the main OBS site: https://build.opensuse.org/

# cd into this repository
$ cd <this repo location>

# build the container image
# cc-osc name is used for the tag, it can be anything.
$ sudo docker build -t cc-osc .

# If you are behind a proxy, use instead the following paramenters to build the container.
$ sudo docker build --build-arg=http_proxy=http://<host>:<port> --build-arg=https_proxy=http://<host>:<port> -t cc-osc .

# Run the container and bind this repository.
# In order to make the packages visible from the host, we need to bind a host directory
# to the directory within the container where the packages are stored (/var/packaging/results).
# Change the results variable to change the default host directory.
$ results=/var/packaging/results
$ sudo mkdir -p "$results"
$ sudo docker run -v $PWD:/root/packaging -v /var/packaging/results:$results -it cc-osc bash

# Inside the container, cd to a project, runtime in this case
$ cd /root/packaging/runtime

# To see the options, arguments, etc
$ ./update_runtime.sh --help

# to build locally, run the setup script with the following parameters:
$ ./update_runtime.sh --local-build --verbose

# If something goes wrong, the build logs can be found in /var/packaging/build_logs within the container.