dandi / nwb-healthstatus

Apache License 2.0
1 stars 1 forks source link

replace pynwb-1.2.0 image with reproducible one for a year back based on neurodebian #21

Closed yarikoptic closed 3 years ago

yarikoptic commented 3 years ago

Here is what I see changes needed to spec:

diff --git a/spec.yml b/spec.yml
index 25a5b70..2d3b6cb 100644
--- a/spec.yml
+++ b/spec.yml
@@ -10,10 +10,14 @@ environments:
     pip:
       - pynwb==1.1.0
       - hdmf==2.1.0
-  - name: pynwb-1.2.0
-    pip:
-      - pynwb==1.2.0
-      - hdmf==1.6.0
+  # reproducible container for environment as of a year ago
+  - name: pynwb-1.2.1
+    base-image: neurodebian:bullseye
+    ndfreeze: 20200201
+    apt:
+      - git
+      - python3-pip
+      - python3-pynwb=1.2.1-1~nd+1
   # current up to date at 2021/04/01
   - name: pynwb-1.4.0
     pip:

and this is a manually produced Dockerfile which seems to do the right thing:

(git)smaug:~/proj/dandi/nwb-healthstatus[enh-downstream]environments
$> cat Dockerfile.pynwb-1.2.1                                                                                                                   
FROM neurodebian:bullseye

ARG DEBIAN_FRONTEND="noninteractive"

RUN apt-get update -qq \
    && apt-get install -y -q --no-install-recommends neurodebian-freeze \
    && nd_freeze  20200201 
RUN apt-get install -y python3-pip git python3-pynwb=1.2.1-1~nd110+1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

so it should be just a matter of channeling the additional spec for nd_freeze into neurodocker invocation, producing the image and pushing it out (ideally to be done by the CI , #8 )