fjandrad / development-env

Docker-based isolated development environment for my activities
https://github.com/diegoferigo/devenv
0 stars 0 forks source link

development environments

WhatBuildDownloadUseNotes

Build Status (master)

What

This repository stores my personal development environment for the activities at the Italian Institute of Technology.

These images are based upon the diegoferigo/devenv tool, which provides a bunch of nice features such as runtime user creation, X11 forwarding support, nvidia-docker, etc.

This repository stores three docker-based isolated development environments, progressively built upon each other:

In all these images there are included many utilities, scripts, and customization I developed over time.

Build the images

All the images can be built using the provided Makefile. Just type:

make <target>
Targets
tools
development-latest
development-master
rl-latest
rl-master

All the images are based on top of diegoferigo/devenv:nvidia which optionally support the nvidia runtime if specified in the config file.

Download the images

Alternatively to building the images, you can download the pre-built versions which are stored in my dockerhub profile. This repository has a CI pipeline that periodically builds all the images. Though, not all tags are pushed to dockerhub.

Use the images

In the conf folder you can find the devenv config files of the provided images. Edit them for your needs and then, from that folder, just execute:

devenv -f <image>.yml up

Finally, access the image using docker exec -it <image> su $(whoami).

Notes

Bumblebee support

The nvidia version of the images, thanks to nvidia-docker, supports natively systems based on Nvidia prime. A system properly configured for using bumblebee (or just bbswitch) can start a container able to access the Nvidia gpu only by prepending optirun to the devenv / docker run / docker-compose command.

Be aware that if you start in this way detached containers (-d) the optirun process dies right after, turning off the GPU, while the container stays active in the background with missing hardware resources.