Merge pull request #1 from jonboulle/package-centric-containers

README: minor cleanup
This commit is contained in:
Stefan Junker 2015-07-29 22:35:58 +02:00
commit 09da9845e0

View file

@ -10,14 +10,15 @@
what libraries are installed
## Features
### Package based container builds
### Package-based container builds
This project aims to find a solution for creating and managing containers in a package-centric manner.
In this context a package is both a definition of how to build (e.g. a Gentoo ebuild or Debian control file)
Every container will be able to specify their dependencies, which can be self-built packages or exact versions of already existing packages.
Like this the user will always exactly know what libraries, files, etc. is available to his container at runtime.
The specified container will have it's dependencies on packages which themselves can be packaged separately into one container per package.
Like this the user will always exactly know what libraries, files, etc. is available to their container at runtime.
The specified container will have its dependencies on packages which themselves can be packaged separately into one container per package.
### Source-based builds
To allow maximum flexibility for the users, the package files must be able to describe source builds, which allows the user to make changes to the source before the package is built and integrated into the target container image.
To allow maximum flexibility for users, the package files must be able to describe source builds, which allows the user to make changes to the source before the package is built and integrated into the target container image.
### Reproducibility
Builds of packages, as well as builds of container images, must be reproducible in a way that the same input always yields the same output.
@ -25,7 +26,7 @@ Because every change of a package yields in a different identity, the system all
These can differ in properties like source code patches, build configuration options, target architecture, etc..
### Portability of the whole system
As a portable system, builds can be processed locally on a users workstation or distributed to a bunch of servers.
As a portable system, builds can be processed locally on a user's workstation or distributed to a bunch of servers.
### Shareable source and binary files
The build system will ship tools that make it easy to discover and share source and binary files that are respectively consumed and produced by the build system.
@ -33,22 +34,21 @@ This will allow for very fast setups of containers that involve only downloading
# Usage
## Buildit configuration
**.builtit-config.yaml**
**.buildit-config.yaml**
```
---
repository:
name: mysuperbinhost
upload-type: ssh
upload-path: containers@mysuperbinhost.org/containers
downnload-type: https
download-type: https
download-path: mysuperbinhost.org/containers
```
## Sysadmin needs patched nginx
### Sysadmin
In case a sysadmin needs a patched and specifically configured version of it's favorite webserver nginx.
In case a sysadmin needs a patched and specifically configured version of its favorite webserver nginx.
1. Put directories and files in place
@ -111,7 +111,7 @@ In case a sysadmin needs a patched and specifically configured version of it's f
"name": "{{ name }}-{{ version }}",
"labels": [
{"name": "os", "value": "{{ os }}"},
{"name": "arch", "value": {{ arch }}}
{"name": "arch", "value": "{{ arch }}"}
],
"app": {
"exec": [
@ -149,7 +149,7 @@ In case a sysadmin needs a patched and specifically configured version of it's f
* http://nixos.org/nixos/about.html
* https://gitweb.gentoo.org/proj/releng.git/tree/releases/weekly/specs/amd64?id=HEAD
* https://github.com/zefhemel/nix-docker
* [nix build darm
* [nix build farm
paper](http://www.researchgate.net/publication/228629017_The_Nix_Build_Farm_A_declarative_approach_to_continuous_integration)
* https://blogs.gentoo.org/zmedico/2015/07/06/tardelta-generate-a-tarball-of-differences-between-two-tarballs/
* https://github.com/jordansissel/fpm/wiki