1DISTROBOX-ASSEMBLE(1)             User Manual            DISTROBOX-ASSEMBLE(1)
2
3
4

NAME

6              distrobox assemble
7              distrobox-assemble
8

DESCRIPTION

10       distrobox-assemble  takes  care of creating or destroying containers in
11       batches, based on a manifest file.  The manifest  file  by  default  is
12       ./distrobox.ini, but can be specified using the --file flag.
13

SYNOPSIS

15       distrobox assemble
16
17              --file:         path to the distrobox manifest/ini file
18              --name/-n:          run against a single entry in the manifest/ini file
19              --replace/-R:       replace already existing distroboxes with matching names
20              --dry-run/-d:       only print the container manager command generated
21              --verbose/-v:       show more verbosity
22              --version/-V:       show version
23

EXAMPLES

25       This is an example manifest file to create two containers:
26
27              [ubuntu]
28              additional_packages="git vim tmux nodejs"
29              image=ubuntu:latest
30              init=false
31              nvidia=false
32              pull=true
33              root=false
34              replace=true
35              start_now=false
36
37              # You can add comments using this #
38              [arch] # also inline comments are supported
39              additional_packages="git vim tmux nodejs"
40              home=/tmp/home
41              image=archlinux:latest
42              init=false
43              start_now=true
44              init_hooks="touch /init-normal"
45              nvidia=true
46              pre_init_hooks="touch /pre-init"
47              pull=true
48              root=false
49              replace=false
50              volume="/tmp/test:/run/a /tmp/test:/run/b"
51
52       Create
53
54       We can bring them up simply using
55
56              distrobox assemble create
57
58       If the file is called distrobox.ini and is in the same directory you’re
59       launching the command, no further arguments are needed.  You can speci‐
60       fy a custom path for the file using
61
62              distrobox assemble create --file /my/custom/path.ini
63
64       Replace
65
66       By  default,  distrobox  assemble  will replace a container only if re‐
67       place=true is specified in the manifest file.
68
69       In the example of the manifest above, the ubuntu container will  always
70       be replaced when running distrobox assemble create, while the arch con‐
71       tainer will not.
72
73       To force a replace for all containers in a manifest use  the  --replace
74       flag
75
76              distrobox assemble create --replace [--file my/custom/path.ini]
77
78       Remove
79
80       We can bring down all the containers in a manifest file by simply doing
81
82              distrobox assemble rm
83
84       Or using a custom path for the ini file
85
86              distrobox assemble rm --file my/custom/path.ini
87
88       Test
89
90       You  can  always  test  what  distrobox would do by using the --dry-run
91       flag.  This command will only print what commands  distrobox  would  do
92       without actually running them.
93
94       Available options
95
96       This is a list of available options with the corresponding type:
97
98       Flag Name             Type
99       ─────────────────────────────
100       additional_flags      string
101       additional_packages   string
102       home                  string
103       image                 string
104       init_hooks            string
105       pre_init_hooks        string
106       volume                string
107       exported_apps         string
108       exported_bins         string
109       exported_bins_path    string
110       entry                 bool
111       start_now             bool
112       init                  bool
113       nvidia                bool
114       pull                  bool
115       root                  bool
116       unshare_ipc           bool
117       unshare_netns         bool
118       unshare_process       bool
119       unshare_devsys        bool
120       unshare_all           bool
121
122       boolean  options default to false if not specified.  string options can
123       be broken in multiple declarations additively in order to improve read‐
124       ability of the file:
125
126              [ubuntu]
127              image=ubuntu:latest
128              additional_packages="git vim tmux nodejs"
129              additional_packages="htop iftop iotop"
130              additional_packages="zsh fish"
131
132       Be  aware  that  if  you’re  doing lines with spaces, you need to quote
133       them.  If you’re doing multiple hooks (init or  pre_init)  in  multiple
134       lines,  end  the line with a semicolon (;) in order to execute them one
135       after the other.
136
137       For an explanation of each of the option in the list, take  a  look  at
138       the  distrobox create usage, each option corresponds to one of the cre‐
139       ate flags.
140
141       Advanced example
142
143              [tumbleweed_distrobox]
144              image=registry.opensuse.org/opensuse/distrobox
145              pull=true
146              additional_packages="acpi bash-completion findutils iproute iputils sensors inotify-tools unzip"
147              additional_packages="net-tools nmap openssl procps psmisc rsync man tig tmux tree vim htop xclip yt-dlp"
148              additional_packages="git git-credential-libsecret"
149              additional_packages="patterns-devel-base-devel_basis"
150              additional_packages="ShellCheck ansible-lint clang clang-tools codespell ctags desktop-file-utils gcc golang jq python3"
151              additional_packages="python3-bashate python3-flake8 python3-mypy python3-pipx python3-pycodestyle python3-pyflakes python3-pylint python3-python-lsp-server python3-rstcheck python3-yapf python3-yamllint rustup shfmt"
152              additional_packages="kubernetes-client helm"
153              init_hooks=GOPATH="${HOME}/.local/share/system-go" GOBIN=/usr/local/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest;
154              init_hooks=GOPATH="${HOME}/.local/share/system-go" GOBIN=/usr/local/bin go install github.com/onsi/ginkgo/v2/ginkgo@latest;
155              init_hooks=GOPATH="${HOME}/.local/share/system-go" GOBIN=/usr/local/bin go install golang.org/x/tools/cmd/goimports@latest;
156              init_hooks=GOPATH="${HOME}/.local/share/system-go" GOBIN=/usr/local/bin go install golang.org/x/tools/gopls@latest;
157              init_hooks=GOPATH="${HOME}/.local/share/system-go" GOBIN=/usr/local/bin go install sigs.k8s.io/kind@latest;
158              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/conmon;
159              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/crun;
160              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker;
161              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker-compose;
162              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/flatpak;
163              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/podman;
164              init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/xdg-open;
165              exported_apps="htop"
166              exported_bins="/usr/bin/htop /usr/bin/git"
167              exported_bins_path="~/.local/bin"
168
169
170
171Distrobox                          Nov 2023              DISTROBOX-ASSEMBLE(1)
Impressum