Skip to content

Commit c3623b1

Browse files
authored
Update script-setup.sh for Java (#71)
* update python install * update jdk install path Co-authored-by: QPod0 <QPod0@outlook.com>
1 parent ac1ef21 commit c3623b1

File tree

5 files changed

+91
-53
lines changed

5 files changed

+91
-53
lines changed

.github/workflows/docker.yml

+41-32
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
name: qpod/base
2424
runs-on: ubuntu-latest
2525
steps:
26-
- uses: actions/checkout@v2
26+
- uses: actions/checkout@v3
2727
- run: |
2828
source ./tool.sh
2929
build_image atom latest docker_atom/Dockerfile && push_image
@@ -34,7 +34,7 @@ jobs:
3434
needs: qpod_base
3535
runs-on: ubuntu-latest
3636
steps:
37-
- uses: actions/checkout@v2
37+
- uses: actions/checkout@v3
3838
- run: |
3939
source ./tool.sh
4040
build_image core latest docker_core/Dockerfile \
@@ -50,55 +50,60 @@ jobs:
5050
needs: qpod_base
5151
runs-on: ubuntu-latest
5252
steps:
53-
- uses: actions/checkout@v2
53+
- uses: actions/checkout@v3
5454
- run: source ./tool.sh && build_image py-data latest docker_core/Dockerfile --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,database" && push_image
5555

5656
qpod_py-chem:
5757
name: qpod/py-chem
5858
needs: qpod_base
5959
runs-on: ubuntu-latest
6060
steps:
61-
- uses: actions/checkout@v2
61+
- uses: actions/checkout@v3
6262
- run: source ./tool.sh && build_image py-chem latest docker_core/Dockerfile --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,chem" && push_image
6363

6464
qpod_py-std:
6565
name: qpod/py-std
6666
needs: qpod_base
6767
runs-on: ubuntu-latest
6868
steps:
69-
- uses: actions/checkout@v2
69+
- uses: actions/checkout@v3
7070
- run: source ./tool.sh && build_image py-std latest docker_core/Dockerfile --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,database,nlp,cv,chem" && push_image
7171

7272
qpod_py-jdk:
7373
name: qpod/py-jdk
7474
needs: qpod_base
7575
runs-on: ubuntu-latest
7676
steps:
77-
- uses: actions/checkout@v2
78-
- run: source ./tool.sh && build_image py-jdk latest docker_core/Dockerfile --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,database,nlp,cv,chem" --build-arg "ARG_PROFILE_JAVA=base" && push_image
77+
- uses: actions/checkout@v3
78+
- run: |
79+
source ./tool.sh
80+
build_image py-jdk latest docker_core/Dockerfile \
81+
--build-arg "ARG_PROFILE_PYTHON=datascience,mkl,database,nlp,cv,chem" \
82+
--build-arg "ARG_PROFILE_JAVA=base"
83+
push_image
7984
8085
qpod_r-base:
8186
name: qpod/r-base
8287
needs: qpod_base
8388
runs-on: ubuntu-latest
8489
steps:
85-
- uses: actions/checkout@v2
90+
- uses: actions/checkout@v3
8691
- run: source ./tool.sh && build_image r-base latest docker_core/Dockerfile --build-arg "ARG_PROFILE_R=base" && push_image
8792

8893
qpod_r-std:
8994
name: qpod/r-std
9095
needs: qpod_base
9196
runs-on: ubuntu-latest
9297
steps:
93-
- uses: actions/checkout@v2
98+
- uses: actions/checkout@v3
9499
- run: source ./tool.sh && build_image r-std latest docker_core/Dockerfile --build-arg "ARG_PROFILE_R=base,datascience" --build-arg "ARG_PROFILE_JAVA=base" && push_image
95100

96101
qpod_r-latex:
97102
name: qpod/r-latex
98103
needs: qpod_base
99104
runs-on: ubuntu-latest
100105
steps:
101-
- uses: actions/checkout@v2
106+
- uses: actions/checkout@v3
102107
- run: |
103108
source ./tool.sh
104109
build_image r-latex latest docker_core/Dockerfile \
@@ -112,7 +117,7 @@ jobs:
112117
needs: qpod_base
113118
runs-on: ubuntu-latest
114119
steps:
115-
- uses: actions/checkout@v2
120+
- uses: actions/checkout@v3
116121
- run: |
117122
source ./tool.sh
118123
build_image r-studio latest docker_core/Dockerfile \
@@ -126,31 +131,35 @@ jobs:
126131
needs: qpod_base
127132
runs-on: ubuntu-latest
128133
steps:
129-
- uses: actions/checkout@v2
134+
- uses: actions/checkout@v3
130135
- run: source ./tool.sh && build_image node latest docker_core/Dockerfile --build-arg "ARG_PROFILE_NODEJS=base" && push_image
131136

132137
qpod_jdk:
133138
name: qpod/jdk
134139
needs: qpod_base
135140
runs-on: ubuntu-latest
136141
steps:
137-
- uses: actions/checkout@v2
138-
- run: source ./tool.sh && build_image jdk latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" && push_image
142+
- uses: actions/checkout@v3
143+
- run: |
144+
source ./tool.sh
145+
build_image jdk17 latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" --build-arg "VERSION_JDK=17" && push_image
146+
build_image jdk11 latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" --build-arg "VERSION_JDK=11" && alias_image jdk11 latest jdk latest && push_image
147+
build_image jdk8 latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" --build-arg "VERSION_JDK=8" && push_image
139148
140149
qpod_julia:
141150
name: qpod/julia
142151
needs: qpod_base
143152
runs-on: ubuntu-latest
144153
steps:
145-
- uses: actions/checkout@v2
154+
- uses: actions/checkout@v3
146155
- run: source ./tool.sh && build_image julia latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JULIA=base" && push_image
147156

148157
qpod_go:
149158
name: qpod/go
150159
needs: qpod_base
151160
runs-on: ubuntu-latest
152161
steps:
153-
- uses: actions/checkout@v2
162+
- uses: actions/checkout@v3
154163
- run: source ./tool.sh && build_image go latest docker_core/Dockerfile --build-arg "ARG_PROFILE_GO=base" && push_image
155164

156165

@@ -161,7 +170,7 @@ jobs:
161170
name: qpod/cuda_11.6
162171
runs-on: ubuntu-latest
163172
steps:
164-
- uses: actions/checkout@v2
173+
- uses: actions/checkout@v3
165174
- run: |
166175
source ./tool.sh
167176
build_image cuda_11.6 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04"
@@ -174,7 +183,7 @@ jobs:
174183
name: qpod/cuda_11.2
175184
runs-on: ubuntu-latest
176185
steps:
177-
- uses: actions/checkout@v2
186+
- uses: actions/checkout@v3
178187
- run: |
179188
source ./tool.sh
180189
build_image cuda_11.2 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04"
@@ -188,7 +197,7 @@ jobs:
188197
name: qpod/cuda_10.2
189198
runs-on: ubuntu-latest
190199
steps:
191-
- uses: actions/checkout@v2
200+
- uses: actions/checkout@v3
192201
- run: |
193202
source ./tool.sh
194203
build_image cuda_10.2 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04"
@@ -200,7 +209,7 @@ jobs:
200209
name: qpod/cuda_10.0
201210
runs-on: ubuntu-latest
202211
steps:
203-
- uses: actions/checkout@v2
212+
- uses: actions/checkout@v3
204213
- run: |
205214
source ./tool.sh
206215
build_image cuda_10.0 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04"
@@ -213,7 +222,7 @@ jobs:
213222
needs: qpod_cuda_10_0
214223
runs-on: ubuntu-latest
215224
steps:
216-
- uses: actions/checkout@v2
225+
- uses: actions/checkout@v3
217226
- run: |
218227
source ./tool.sh
219228
build_image tf1-cuda100 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.0" --build-arg "ARG_PROFILE_PYTHON=tf1"
@@ -225,7 +234,7 @@ jobs:
225234
needs: qpod_cuda_11_2
226235
runs-on: ubuntu-latest
227236
steps:
228-
- uses: actions/checkout@v2
237+
- uses: actions/checkout@v3
229238
- run: |
230239
source ./tool.sh
231240
build_image tf2-cuda112 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.2" --build-arg "ARG_PROFILE_PYTHON=tf2"
@@ -237,7 +246,7 @@ jobs:
237246
needs: qpod_cuda_11_6
238247
runs-on: ubuntu-latest
239248
steps:
240-
- uses: actions/checkout@v2
249+
- uses: actions/checkout@v3
241250
- run: |
242251
source ./tool.sh
243252
build_image torch-cuda116 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=torch"
@@ -249,7 +258,7 @@ jobs:
249258
needs: qpod_cuda_10_2
250259
runs-on: ubuntu-latest
251260
steps:
252-
- uses: actions/checkout@v2
261+
- uses: actions/checkout@v3
253262
- run: |
254263
source ./tool.sh
255264
build_image torch-cuda102 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.2" --build-arg "ARG_PROFILE_PYTHON=torch"
@@ -260,7 +269,7 @@ jobs:
260269
needs: qpod_cuda_11_6
261270
runs-on: ubuntu-latest
262271
steps:
263-
- uses: actions/checkout@v2
272+
- uses: actions/checkout@v3
264273
- run: |
265274
source ./tool.sh
266275
build_image paddle-cuda116 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=paddle,mkl"
@@ -272,7 +281,7 @@ jobs:
272281
needs: qpod_cuda_10_2
273282
runs-on: ubuntu-latest
274283
steps:
275-
- uses: actions/checkout@v2
284+
- uses: actions/checkout@v3
276285
- run: |
277286
source ./tool.sh
278287
build_image paddle-cuda102 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.2" --build-arg "ARG_PROFILE_PYTHON=paddle,mkl"
@@ -284,7 +293,7 @@ jobs:
284293
needs: qpod_base
285294
runs-on: ubuntu-latest
286295
steps:
287-
- uses: actions/checkout@v2
296+
- uses: actions/checkout@v3
288297
- run: |
289298
source ./tool.sh
290299
build_image py-nlp-cuda116 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,torch,nlp"
@@ -296,7 +305,7 @@ jobs:
296305
needs: qpod_base
297306
runs-on: ubuntu-latest
298307
steps:
299-
- uses: actions/checkout@v2
308+
- uses: actions/checkout@v3
300309
- run: |
301310
source ./tool.sh
302311
build_image py-nlp-cuda102 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.2" --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,torch,nlp"
@@ -308,7 +317,7 @@ jobs:
308317
needs: qpod_base
309318
runs-on: ubuntu-latest
310319
steps:
311-
- uses: actions/checkout@v2
320+
- uses: actions/checkout@v3
312321
- run: |
313322
source ./tool.sh
314323
build_image py-cv latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,torch,cv"
@@ -320,7 +329,7 @@ jobs:
320329
needs: qpod_cuda_11_6
321330
runs-on: ubuntu-latest
322331
steps:
323-
- uses: actions/checkout@v2
332+
- uses: actions/checkout@v3
324333
- run: |
325334
source ./tool.sh && free_diskspace
326335
build_image full-cuda-11.6 latest docker_core/Dockerfile \
@@ -337,7 +346,7 @@ jobs:
337346
needs: qpod_core
338347
runs-on: ubuntu-latest
339348
steps:
340-
- uses: actions/checkout@v2
349+
- uses: actions/checkout@v3
341350
- run: |
342351
source ./tool.sh
343352
build_image core-dev latest docker_dev/Dockerfile \
@@ -350,7 +359,7 @@ jobs:
350359
needs: qpod_core-cuda
351360
runs-on: ubuntu-latest
352361
steps:
353-
- uses: actions/checkout@v2
362+
- uses: actions/checkout@v3
354363
- run: |
355364
source ./tool.sh && free_diskspace
356365
build_image cuda-dev latest docker_dev/Dockerfile \

docker_atom/Dockerfile

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# Distributed under the terms of the Modified BSD License.
22

3-
# default value: Latest LTS version of Ubuntu (https://hub.docker.com/_/ubuntu)
4-
5-
ARG BASE_IMG="ubuntu:focal" # latest
3+
# latest # default value: Latest LTS version of Ubuntu (https://hub.docker.com/_/ubuntu)
4+
ARG BASE_IMG="ubuntu:focal"
65
FROM ${BASE_IMG}
76

87
LABEL maintainer="haobibo@gmail.com"
@@ -20,7 +19,7 @@ ENV SHELL=/bin/bash \
2019
LANGUAGE="en_US.UTF-8" \
2120
HOME_DIR=/root
2221

23-
SHELL ["/bin/bash", "-c"]
22+
SHELL ["/bin/bash", "--login", "-c"]
2423

2524
# --> Install OS libraries and setup some configurations
2625
RUN cd /tmp \

docker_atom/work/script-setup.sh

+37-7
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,24 @@ setup_mamba() {
1616

1717

1818
setup_conda_postprocess() {
19+
ln -sf ${CONDA_PREFIX}/bin/python3 /usr/bin/python
20+
1921
# If python exists, set pypi source
2022
if [ -f "$(which python)" ]; then
2123
cat >/etc/pip.conf <<EOF
2224
[global]
2325
progress_bar=off
2426
root-user-action=ignore
27+
# retries=5
28+
# timeout=10
29+
trusted-host=pypi.python.org pypi.org files.pythonhosted.org
30+
# index-url=https://pypi.python.org/simple
2531
EOF
2632
fi
2733

34+
echo 'export PATH=$PATH:${CONDA_PREFIX}/bin' >> /etc/profile
35+
ln -sf ${CONDA_PREFIX}/bin/conda /usr/bin/
36+
2837
conda config --system --prepend channels conda-forge \
2938
&& conda config --system --set auto_update_conda false \
3039
&& conda config --system --set show_channel_urls true \
@@ -42,15 +51,17 @@ EOF
4251
}
4352

4453
setup_conda_with_mamba() {
54+
mkdir -pv ${CONDA_PREFIX}
4555
VERSION_PYTHON=$1; shift 1;
4656
mamba install -y --root-prefix="${CONDA_PREFIX}" --prefix="${CONDA_PREFIX}" -c "conda-forge" conda pip python="${VERSION_PYTHON:-3.10}"
47-
rm -rf /opt/conda/pkgs/*
57+
rm -rf ${CONDA_PREFIX}/pkgs/*
4858
setup_conda_postprocess
4959
}
5060

5161
setup_conda_download() {
62+
mkdir -pv ${CONDA_PREFIX}
5263
wget -qO- "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-$(arch).sh" -O /tmp/conda.sh
53-
bash /tmp/conda.sh -f -b -p /opt/conda
64+
bash /tmp/conda.sh -f -b -p ${CONDA_PREFIX}/
5465
rm -rf /tmp/conda.sh
5566
setup_conda_postprocess
5667
}
@@ -85,16 +96,35 @@ setup_nvtop() {
8596

8697

8798
setup_java_base() {
88-
VERSION_JDK=11 \
89-
&& URL_OPENJDK=$(curl -sL https://jdk.java.net/archive/ | grep 'linux-x64_bin.tar' | grep -v sha256 | sed -n 's/.*href="\([^"]*\).*/\1/p' | grep "jdk${VERSION_JDK}" | head -n 1) \
90-
&& echo "Installing JDK from: ${URL_OPENJDK}" \
91-
&& install_tar_gz "${URL_OPENJDK}" && mv /opt/jdk-* /opt/jdk \
99+
local VER_JDK=${VERSION_JDK:-"11"}
100+
ARCH="x64"
101+
echo "Use env var VERSION_JDK to specify JDK major version. If not specified, will install version 11 by default."
102+
echo "Will install JDK version ${VER_JDK}"
103+
104+
JDK_PAGE_DOWNLOAD="https://www.oracle.com/java/technologies/downloads/" \
105+
&& JDK_URL_ORCA=$(curl -sL ${JDK_PAGE_DOWNLOAD} | grep "tar.gz" | grep "http" | grep -v sha256 | grep ${ARCH} | grep -i $(uname) | sed "s/'/\"/g" | sed -n 's/.*="\([^"]*\).*/\1/p' | grep "jdk-${VER_JDK}" | head -n 1)
106+
107+
JDK_PAGE_RELEASE="https://www.oracle.com/java/technologies/javase/${VER_JDK}u-relnotes.html" \
108+
&& JDK_VER_MINOR=$(curl -sL ${JDK_PAGE_RELEASE} | grep -P 'JDK \d..\d+' | grep -Po '[\d\.]{3,}' | head -n1) \
109+
&& JDK_URL_MSFT="https://aka.ms/download-jdk/microsoft-jdk-${JDK_VER_MINOR}-linux-${ARCH}.tar.gz"
110+
111+
if [ "$VER_JDK" -gt 11 ] ; then
112+
URL_OPENJDK=${JDK_URL_ORCA}
113+
elif [ "$VER_JDK" -gt 8 ] ; then
114+
URL_OPENJDK=${JDK_URL_MSFT}
115+
else
116+
echo "ORCA download URL ref: ${JDK_URL_ORCA}"
117+
URL_OPENJDK="https://javadl.oracle.com/webapps/download/GetFile/1.8.0_341-b10/424b9da4b48848379167015dcc250d8d/linux-i586/jdk-8u341-linux-${ARCH}.tar.gz"
118+
fi
119+
120+
echo "Installing JDK version ${VER_JDK} from: ${URL_OPENJDK}" \
121+
&& install_tar_gz "${URL_OPENJDK}" && mv /opt/jdk* /opt/jdk \
92122
&& ln -sf /opt/jdk/bin/* /usr/bin/ \
93123
&& echo "@ Version of Java (java/javac):" && java -version && javac -version
94124
}
95125

96126
setup_java_maven() {
97-
VERSION_MAVEN=$1; shift 1; VERSION_MAVEN=${VERSION_MAVEN:-"3.8.5"} \
127+
VERSION_MAVEN=$1; shift 1; VERSION_MAVEN=${VERSION_MAVEN:-"3.8.6"} \
98128
&& install_zip "http://archive.apache.org/dist/maven/maven-3/${VERSION_MAVEN}/binaries/apache-maven-${VERSION_MAVEN}-bin.zip" \
99129
&& mv /opt/apache-maven-${VERSION_MAVEN} /opt/maven \
100130
&& ln -sf /opt/maven/bin/mvn* /usr/bin/ \

0 commit comments

Comments
 (0)