Closed jashapiro closed 4 months ago
A few other notes as I got this ready for review:
I changed the base name of the image. That was partly because I was testing some tagging settings and I didn't want to break anything, but I wonder if we want to change it for the future? I can change it back pretty easily, but I think we need to merge a version in to complete the testing, so that might have to wait a bit.
Since renv
Python support was already so dicey, I simply removed it here in favor of using pip-tools
. I added a small conda environment because I found that the python version used for generating the files did matter when building the image. Some of that could have been managed with version specifications in the .in
files, but just building with Python 3.10 seemed safer overall.
Main questions for review:
Does this overall structure make sense and seem maintainable?
How many docker image types should we build? I actually think this is a next-issue question, but I made three here as a kind of discussion-starter
I also made an renv file for including Seurat, which could be easily converted to another image
Should we make some python/scvi-only images, or would those make sense in a different repository (I think the latter)?
This draft is currently for testing a change to how we manage the docker images and python dependencies for images built from this repository.
I added a script to create different
renv
andrequirements
files, and dockerfiles that use those to build two versions of the images: One has everything we had before, and the other only the minimal requirements forscpcaTools
I build the requirements files using
pip-tools
from a smallerrequirements.in
file. The idea is that we can maintain the versioning in the smaller files and let thepip-compile
handle the dependencies.I considered using
conda-lock
here, but the overhead within the docker image seemed smaller by sticking withpip
.In the future this may also make building a GPU-based workflow a bit easier.