Skip to content
/ dpm Public

[POC] Use docker containers to use any development tool for your project

License

Notifications You must be signed in to change notification settings

fermayo/dpm

Repository files navigation

dpm

Wouldn't it be great if the only tool you need to start developing on any project is just Docker?

Installation

Install Docker. Then:

curl -L "https://github.com/fermayo/dpm/releases/download/0.2.2/dpm-$(uname -s)-$(uname -m)" -o /usr/local/bin/dpm; chmod +x /usr/local/bin/dpm

And add ~/.dpm to your $PATH. For example, for bash:

echo "export PATH=\$PATH:$HOME/.dpm" >> ~/.bashrc

If you want project commands installed with dpm to override system commands (be careful!), use the following instead:

echo "export PATH=$HOME/.dpm:\$PATH" >> ~/.bashrc

Usage

Defining commands for your project

Add a file called dpm.yml to your project root defining the commands you want to use for development. For example:

commands:
  go:
    image: golang:1.7.5
    context: /go/src/github.com/fermayo/dpm

  glide:
    image: dockerepo/glide

These are container definitions with a syntax similar to Compose. The following defaults will apply:

  • The entrypoint of the container defaults to the command name
  • The current folder is mounted read/write to context (default: /run/context)
  • The working directory defaults to context (default: /run/context)
  • Containers are deleted after execution (--rm)
  • They are run in interactive mode (-i) and with tty enabled (-t)

You can override these or define any other container attributes.

Currently only the following attributes are supported: image, entrypoint, context, volumes.

Installing commands

Execute:

dpm install

and it will create all command aliases in .dpm/. Run it every time you update dpm.yml.

Using project commands

From the project root, run the following to enable its installed commands:

dpm activate

Then, just execute them as if they were installed in your OS:

$ go version
go version go1.7.5 linux/amd64

You can also list which commands are currently available by running:

dpm list

About

[POC] Use docker containers to use any development tool for your project

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published