At its heart, dex manages 'dexecutables' -- runtime scripts that execute containerized applications. The Dockerfiles making up these applications are managed in source repositories.
Dex consults source repositories for the Dockerfile to build application images from -- similar to how yum and apt consult package sources. Thus, applications available to dex are dictated by source repository checkouts.
Source Repositories are defined one-per-line in $DEX_HOME/sources.list as <name> <url>. URLs may point to the remote URL or local path of a git repository. Each repository must have a dex-images/ tree containing images.
Use dex repo to manage source repositories.
sources.list example - repository example
⭐ Repository checkouts are performed once when added. Use
dex repo pullto refresh checkout(s), or pass the--pullflag todex run|ls|install|etccommands to perform a checkout on-the-fly.
Use environmental variables to override default default command and container runtime behavior.
variables effecting command behavior.
Here's an example overriding the bin directory and prefix.
DEX_BIN_DIR=~/bin/ DEX_BIN_PREFIX=acme- dex install ag
# ^^^ ag installed to ~/bin/acme-ag| var | default | description |
|---|---|---|
| DEX_BIN_DIR | $DEX_HOME/bin | dexecutable installation target directory |
| DEX_BIN_PREFIX | d | dexecutable installation prefix |
| DEX_HOME | ~/.dex | dex workspace, where checkouts and sources.list are kept. |
| DEX_NAMESPACE | dex/v1 | prefix used when tagging image builds |
| DEX_NETWORK | true | enables network fetching |
| DEX_RUNTIME | v1 | runtime api version |
variables effecting runtime behavior.
Here's an example overriding the entrypoint of an installed image.
dex install --global ansible
DEX_DOCKER_ENTYPOINT=bash ansible
$
# ^^^ ...we're now in the ansible container's bash shell...See v1 runtime variables for a complete list.
WIP