ucberkeley / bce

Berkeley Common Environment provides a common Linux computational environment for classwork and research.
Apache License 2.0
13 stars 6 forks source link

Thoughts on a dockerized version of BCE? #74

Closed cboettig closed 8 years ago

cboettig commented 8 years ago

Hi folks,

This is primarily just an experiment for a quick way for me to get a BCE environment running on my local or cloud machine without adding the extra layer of virtualization (or needing a provider-specific image such as the AMI on the cloud side); where the primary means of interaction with the environment would be through shell or browser (particularly a Jupyter notebook or RStudio-server instance). The Dockerfile I have here seems to be building fine, though most errors in package installations don't actually throw errors to bash and thus a successful build isn't an indication of much. (I think you do have some clever logging going on for the build process, but I haven't wrapped my head around that yet -- pointers welcome).

Just starting from Ubuntu:15.04 Docker image and running the bootstrap-bce.sh highlights some interesting observations in portability of these scripts (recognizing that they weren't intended to run that way), though most of the additional configuration that is provided by the packer .json files can be translated into a debconf file, a few file paths, and a few env variables. I think because the Dockerfile starts with the Ubuntu server edition instead of the desktop edition, several standard packages aren't available and I had to add these manually before running the bootstrapping script.

For now, curious what people think of this and also just looking for some pointers on how to go through the logs or tests to better identify what did and didn't build correctly in this way. In general it might be preferrable to have packer / ansible or what-not compile a docker image directly, rather than maintain a separate Dockerfile and packer script that could get out of sync.

davclark commented 8 years ago

I'd be willing to put some time into streamlining our devops - moving towards ansible + packer to generate a docker image!