This repository contains Dockerfiles that produce container images suitable for use with the docker-shell command-line tool. These images are designed to provide self-contained and repeatable installations of various developer tools for interactive use, and range from encapsulating individual tools all the way through to representing complete development environments for working with particular middleware or frameworks. The images leverage the unique features of docker-shell to automatically configure the necessary Docker options, thus providing a convenient and concise interface.
The following container images are currently available:
-
cloud-tools: encapsulates tools for interacting with various public cloud providers.
-
jekyll: provides a development environment for building static sites using Jekyll. The image is designed to accommodate both GitHub Pages sites and projects that use a
Gemfileto manage their dependencies (e.g. sites hosted on GitLab Pages.) -
swiss-army-knife: encapsulates multiple tools for converting and manipulating a variety of file formats, including multimedia files, raster images, text and PDF documents.
Building and running the container images from this repository requires the following:
-
An appropriate Docker installation for the host system platform:
- Windows 10: Docker Desktop for Windows
- macOS: Docker Desktop for Mac
- Linux: Docker Community Edition (CE)
-
Python version 3.5 or newer
-
The docker-shell Python package, version 0.0.7 or newer
-
(Optional) To utilise GPU acceleration under Linux you will need the NVIDIA binary drivers and the NVIDIA Container Toolkit
Most of the container images produced by the Dockerfiles in this repository contain additional metadata specifying the useful commands supported by their containers. You can run the generate-aliases.py Python script from the root of this repository to generate wrapper scripts on the host system that will invoke these tools directly via docker-shell. Adding the directory containing the generated aliases to your system's PATH environment variable will allow you to run the aliased commands without the intermediate step of first creating an interactive shell. This can be convenient for scripting purposes or when mixing commands from different container images, although it is important to remember that the tools are still run inside containers in exactly the same manner as shells are, which limits them to accessing host system files within the current working directory or its subdirectories.
Copyright © 2020 - 2021, Adam Rehn. Licensed under the MIT License, see the file LICENSE for details.