-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
128 lines (119 loc) · 4.09 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# Your version: 0.6.0 Latest version: 0.9.5
# Generated by Neurodocker version 0.6.0
# Timestamp: 2024-05-09 00:22:16 UTC
#
# Thank you for using Neurodocker. If you discover any issues
# or ways to improve this software, please submit an issue or
# pull request on our GitHub repository:
#
# https://github.com/kaczmarj/neurodocker
FROM ubuntu:18.04
ARG DEBIAN_FRONTEND="noninteractive"
ENV LANG="en_US.UTF-8" \
LC_ALL="en_US.UTF-8" \
ND_ENTRYPOINT="/neurodocker/startup.sh"
RUN export ND_ENTRYPOINT="/neurodocker/startup.sh" \
&& apt-get update -qq \
&& apt-get install -y -q --no-install-recommends \
apt-utils \
bzip2 \
ca-certificates \
curl \
locales \
unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
&& dpkg-reconfigure --frontend=noninteractive locales \
&& update-locale LANG="en_US.UTF-8" \
&& chmod 777 /opt && chmod a+s /opt \
&& mkdir -p /neurodocker \
&& if [ ! -f "$ND_ENTRYPOINT" ]; then \
echo '#!/usr/bin/env bash' >> "$ND_ENTRYPOINT" \
&& echo 'set -e' >> "$ND_ENTRYPOINT" \
&& echo 'export USER="${USER:=`whoami`}"' >> "$ND_ENTRYPOINT" \
&& echo 'if [ -n "$1" ]; then "$@"; else /usr/bin/env bash; fi' >> "$ND_ENTRYPOINT"; \
fi \
&& chmod -R 777 /neurodocker && chmod a+s /neurodocker
ENTRYPOINT ["/neurodocker/startup.sh"]
RUN apt-get update -qq \
&& apt-get install -y -q --no-install-recommends \
git \
nano \
unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV CONDA_DIR="/opt/miniconda-latest" \
PATH="/opt/miniconda-latest/bin:$PATH"
RUN export PATH="/opt/miniconda-latest/bin:$PATH" \
&& echo "Downloading Miniconda installer ..." \
&& conda_installer="/tmp/miniconda.sh" \
&& curl -fsSL --retry 5 -o "$conda_installer" https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& bash "$conda_installer" -b -p /opt/miniconda-latest \
&& rm -f "$conda_installer" \
&& conda update -yq -nbase conda \
&& conda config --system --prepend channels conda-forge \
&& conda config --system --set auto_update_conda false \
&& conda config --system --set show_channel_urls true \
&& sync && conda clean --all && sync \
&& conda create -y -q --name repronim_ml \
&& conda install -y -q --name repronim_ml \
"python=3.10" \
"numpy=1.22" \
"pandas=1.4" \
"scikit-learn=1.0.2" \
"seaborn=0.11" \
&& sync && conda clean --all && sync \
&& bash -c "source activate repronim_ml \
&& pip install --no-cache-dir \
"tensorflow==2.8" \
"datalad[full]==0.15.6"" \
&& rm -rf ~/.cache/pip/* \
&& sync \
&& sed -i '$isource activate repronim_ml' $ND_ENTRYPOINT
RUN sed -i '$isource activate repronim_ml' $ND_ENTRYPOINT
ENTRYPOINT ["/neurodocker/startup.sh", "python"]
RUN echo '{ \
\n "pkg_manager": "apt", \
\n "instructions": [ \
\n [ \
\n "base", \
\n "ubuntu:18.04" \
\n ], \
\n [ \
\n "install", \
\n [ \
\n "git", \
\n "nano", \
\n "unzip" \
\n ] \
\n ], \
\n [ \
\n "miniconda", \
\n { \
\n "version": "latest", \
\n "create_env": "repronim_ml", \
\n "activate": true, \
\n "conda_install": [ \
\n "python=3.10", \
\n "numpy=1.22", \
\n "pandas=1.4", \
\n "scikit-learn=1.0.2", \
\n "seaborn=0.11" \
\n ], \
\n "pip_install": [ \
\n "tensorflow==2.8", \
\n "datalad[full]==0.15.6" \
\n ] \
\n } \
\n ], \
\n [ \
\n "add_to_entrypoint", \
\n "source activate repronim_ml" \
\n ], \
\n [ \
\n "entrypoint", \
\n "/neurodocker/startup.sh python" \
\n ] \
\n ] \
\n}' > /neurodocker/neurodocker_specs.json