|
23 | 23 | # SOFTWARE.
|
24 | 24 |
|
25 | 25 | # Ubuntu 22.04 LTS - Jammy
|
26 |
| -ARG BASE_IMAGE=ubuntu:jammy-20230605 |
| 26 | +ARG BASE_IMAGE=ubuntu:jammy-20240405 |
27 | 27 |
|
28 | 28 | # NiBabies wheel
|
29 | 29 | FROM python:slim AS src
|
30 | 30 | RUN pip install build
|
31 | 31 | RUN apt-get update && \
|
32 | 32 | apt-get install -y --no-install-recommends git
|
33 |
| -COPY . /src/nibabies |
34 |
| -RUN python -m build /src/nibabies |
| 33 | +COPY . /src |
| 34 | +RUN python -m build /src |
35 | 35 |
|
36 | 36 | # Older Python to support legacy MCRIBS
|
37 | 37 | FROM python:3.6.15-slim as pyenv
|
@@ -90,19 +90,26 @@ RUN mkdir /opt/workbench && \
|
90 | 90 |
|
91 | 91 | # Micromamba
|
92 | 92 | FROM downloader as micromamba
|
| 93 | + |
| 94 | +# Install a C compiler to build extensions when needed. |
| 95 | +# traits<6.4 wheels are not available for Python 3.11+, but build easily. |
| 96 | +RUN apt-get update && \ |
| 97 | + apt-get install -y --no-install-recommends build-essential && \ |
| 98 | + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* |
| 99 | + |
93 | 100 | WORKDIR /
|
94 | 101 | # Bump the date to current to force update micromamba
|
95 |
| -RUN echo "2023.06.29" |
96 |
| -RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba |
| 102 | +RUN echo "2024.04.25" && curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba |
97 | 103 | ENV MAMBA_ROOT_PREFIX="/opt/conda"
|
98 | 104 | COPY env.yml /tmp/env.yml
|
| 105 | +COPY requirements.txt /tmp/requirements.txt |
| 106 | +WORKDIR /tmp |
99 | 107 | RUN micromamba create -y -f /tmp/env.yml && \
|
100 | 108 | micromamba clean -y -a
|
| 109 | + |
101 | 110 | ENV PATH="/opt/conda/envs/nibabies/bin:$PATH"
|
102 |
| -RUN /opt/conda/envs/nibabies/bin/npm install -g svgo@^2.8 bids-validator@1.11.0 && \ |
| 111 | +RUN npm install -g svgo@^3.2.0 bids-validator@^1.14.0 && \ |
103 | 112 | rm -r ~/.npm
|
104 |
| -COPY requirements.txt /tmp/requirements.txt |
105 |
| -RUN /opt/conda/envs/nibabies/bin/pip install --no-cache-dir -r /tmp/requirements.txt |
106 | 113 |
|
107 | 114 | # Main container
|
108 | 115 | FROM ${BASE_IMAGE} as nibabies
|
@@ -207,7 +214,7 @@ ENV PERL5LIB="$MINC_LIB_DIR/perl5/5.8.5" \
|
207 | 214 | PATH="$FREESURFER_HOME/bin:$FREESURFER_HOME/tktools:$MINC_BIN_DIR:$PATH"
|
208 | 215 |
|
209 | 216 | # MCRIBS (required legacy python)
|
210 |
| -COPY --from=nipreps/mcribs@sha256:6c7a8dedd61d0ead8c7c4a57ab158928c1c1d787d87dae33ab7ee43226fb1e0f /opt/MCRIBS/ /opt/MCRIBS |
| 217 | +COPY --from=nipreps/mcribs@sha256:d5ea7616402cbc0b80f32634832dce540a32bb1d5e1e61dfdd2cc795dba8944a /opt/MCRIBS/ /opt/MCRIBS |
211 | 218 | COPY --from=pyenv /usr/local/lib/ /usr/local/lib/
|
212 | 219 | ENV PATH="/opt/MCRIBS/bin:/opt/MCRIBS/MIRTK/MIRTK-install/bin:/opt/MCRIBS/MIRTK/MIRTK-install/lib/tools:${PATH}" \
|
213 | 220 | LD_LIBRARY_PATH="/opt/MCRIBS/lib:/opt/MCRIBS/ITK/ITK-install/lib:/opt/MCRIBS/VTK/VTK-install/lib:/opt/MCRIBS/MIRTK/MIRTK-install/lib:/usr/local/lib:${LD_LIBRARY_PATH}" \
|
@@ -257,7 +264,7 @@ RUN ${CONDA_PYTHON} -m pip install --no-cache-dir --upgrade templateflow && \
|
257 | 264 | find $HOME/.cache/templateflow -type f -exec chmod go=u {} +
|
258 | 265 |
|
259 | 266 | # Install pre-built wheel
|
260 |
| -COPY --from=src /src/nibabies/dist/*.whl . |
| 267 | +COPY --from=src /src/dist/*.whl . |
261 | 268 | RUN ${CONDA_PYTHON} -m pip install --no-cache-dir $( ls *.whl )[telemetry,test]
|
262 | 269 |
|
263 | 270 | # Facilitate Apptainer use
|
|
0 commit comments