-
dex allows you to run applications without installing them or their dependencies.
- dex is a docker package manager for applications and tooling (like
git
,ffmpeg
, andjavac
) as well as daemons (likeredis
,selenium
, andcaddy
).
- dex is a docker package manager for applications and tooling (like
-
dex is like whalebrew, except in bash for extra pain.
- dex images are built from regular Dockerfiles, and use labels to specify runtime behavior. If your app is dockerized, it can be dexified in seconds.
curl -L http://get.iceburg.net/dex/latest-0.12.x/dex > /usr/local/bin/dex && \
chmod +x /usr/local/bin/dex
dex ls
echo 'ping' | dex run sed 's/ping/pong/'
# ^^^ sed from the 'sed' container, not your host machine!
echo "hello" > world.txt
dex run extra/ag "hello"
DEX_DEBUG=true dex run extra/ag "hello"
$ mkdir -p /tmp/ping/pong
$ DEX_DOCKER_FLAGS="-v /tmp/ping:/tmp/ping" ./main.sh run debian ls /tmp/ping
pong
see v1-runtime docs for more runtime variables.
mkdir dos-test
cd dos-test
dex run edit enjoy-edit.com.txt
cd ..
dex run deltree dost-test
# ^^^ yay 1984
DEX_BIN_DIR=/usr/local/bin DEX_BIN_PREFIX=macos- dex install sed:macos
macos-sed --help
# ^^^ yay 1994
dex repo add acme-tools git@github.com/acme-tools/bootstrap.git
dex install acme-tools/
# ^^^ super useful in bootstrap scripts
docs/usage.md for more.
dex can run anywhere docker works, including Windows 10.
Use one of the below methods to install dex.
dex is periodically packaged as a monolithic script and published to;
download a release and copy it to a folder in your $PATH;
curl -L http://get.iceburg.net/dex/latest-0.12.x/dex > /usr/local/bin/dex && \
chmod +x /usr/local/bin/dex
git clone git@github.com:dockerland/dex.git
cd dex
# run dex,
./main.sh
# -or- install to /usr/local/bin/dex
sudo make install
Diehards run dex from the Al Gore provided Cloud
curl -L http://get.iceburg.net/dex/latest-0.12.x/dex | bash -s 'install' 'ag'
# ^^^ installs 'ag' without installing dex
By all means! Before you submit a PR, please include tests and make sure they pass. See tests for more.
The process is the same as providing a normal Dockerfile, except you use label(s) to effect runtime behavior.
Others may find your image useful! Please publish to one of our repositories.
Use existing Dockerfiles in the above repositories as reference, or see docs/HOWTO.md for more details.
Dex provides consistency and convenience around the installation and execution of application containers, and we we wrote it as part of a "modern" bootstrap to improve tooling management.
Dex applications are independent, portable, and non-intrusive. Gone are the days of mucking up a developer's machine and fiddling with versions. You no longer need java
, node
, ruby
, python
, or even make
locally installed to be productive.
Dex remains consistent with docker command line behavior. Users and tool authors can containerize, distribute, and consistently execute applications as intended.
We also wanted to try fun things like executing MacOS commands to test flag behavior or seeing if we could use edit.com from DOS (hint: it works!). We also want to support windowed/X11 applications, so expect dex run firefox
.
See other use cases for ideas on leveraging dex.
Dex is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.