Declarative interface for building images and running commands in containers using Docker.
Project description
Docker Interface
![Development Status](https://pypi-camo.freetls.fastly.net/66a7f7d2d409d68edc5afdbf2111ea3fe73e41c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374617475732d626574612d6f72616e67652e737667)
Docker Interface (DI) is a declarative interface for building images and running commands in containers using Docker. At Spotify, we use Docker Interface to minimise environment drift by running all of our code in containers–during development, production, or to train machine learning models.
Installing Docker Interface
You can install Docker Interface using the following pip
command (you need a python3 interpreter).
pip install docker-interface
To check that Docker Interface was installed successfully, run
di --help
Using Docker Interface
Docker Interface can be invoked from the command line. By default, it reads the configuration from the file di.yml
in the current working directory, a basic version of which is shown below.
build:
tag: name-of-your-container
Docker interface supports two commands:
build
builds and tags Docker image using the current working directory as the build context.run
runs a Docker command in a container and mounts the current working directory with appropriate permissions at/workspace
so you can access your local files without having to rebuild the image.
You can find more extensive examples in the examples
folder in this repository. You can find more detailed information here. Check the schema to get a comprehensive overview of the declarative syntax supported by Docker Interface.
Contributing to Docker Interface
To contribute to the development of Docker Interface, please create a fork of the repository and send any changes as a pull request.
You can test your local installation of Docker Interface as follows.
# 0. Set up a virtual environment (optional but recommended)
# 1. Install development requirements
pip install -r requirements.txt
# 2. Run the tests
make tests
See virtualenv
or conda
for details on how to set up a virtual environment in step 0.
Code of conduct
This project adheres to the Open Code of Conduct. By participating, you are expected to honour this code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.