File: usecases.txt

package info (click to toggle)
debocker 0.2.6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 152 kB
  • sloc: python: 557; sh: 56; makefile: 19
file content (89 lines) | stat: -rw-r--r-- 2,599 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

Debocker is for:

  * building deb packages easily
  * building deb packages *reproducibly*

1) Build a package magically.

 - build a package for the current system

    $ debocker build pkg

 - build a package for any debian release

    $ debocker build -t testing pkg

 - build a package for debian release

    $ debocker build -t ubuntu/raring pkg

 - build a particular version of a packge

    $ debocker build pkg=1.23

 - build a particular git-tag of a package

    $ debocker build-git pkg debian/0.12.4-1
    $ debocker build-git http://github.com/thinred/new-package master

 This one uses a fact that *some* Debian packages use git to version
 control packages. When you give URL, it will check the repo out
 at a given tag (master by default) and build it

 - build a package from URL

    $ debocker build http://www.somewhere.com/package.debr

Notes:
  * probably puts the package in a cache or something
  * when it's done, it shows the container ID

2) Get a package at a particular version, distribution, etc.

 $ debocker get pkg=1.23
 $ debocker get-git pkg

Notes:
  * does not build, just creates a directory. Maybe initializes
    'debocker.conf' in debian/

3) Build current, local package sources

 $ debocker build  (with no parameters)
 $ debocker build --path $path   (builds a package at $path)

Notes:

 * takes the current state of the repo and builds it in a container
 * signs and does all that kind of magic

4) Package a package (sic!) in a reproducible bundle

 $ debocker bundle pkg=1.23
 $ debocker bundle   (for the current directory)

Notes:
  * builds the package (to test if it builds at all)
  * takes the diff and stores in a compressed file
    and information how to build it later;
    now, this one is tricky - docker does not allow
    this, but there is a feature coming that may kind of solve it:
    https://github.com/dotcloud/docker/pull/1974
    well, let's keep it for later
  * it creates a file like 'bundle.debr' that contains
    *all information* to build the package *reproducibly*;
    normally, it should not contain the base system (it should
    be referenced to some rock solid place)


Additional notes:

  * I imagine it could be like that;
    one day I do 'debootstrap' to get an initial image; then every
    day there is an 'apt-get update' to advance the image; so on the
    server there is a chain of images for every day

    the developer builds a package using an automatically fetched
    yesterday's tag to build on it; then he/she can distribute it
    with DEB package, post it somewhere, or something like that