Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update script-setup.sh for Java #71

Merged
merged 4 commits into from
Oct 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 41 additions & 32 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
name: qpod/base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image atom latest docker_atom/Dockerfile && push_image
Expand All @@ -34,7 +34,7 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image core latest docker_core/Dockerfile \
Expand All @@ -50,55 +50,60 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: source ./tool.sh && build_image py-data latest docker_core/Dockerfile --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,database" && push_image

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

qpod_py-std:
name: qpod/py-std
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- 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

qpod_py-jdk:
name: qpod/py-jdk
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- 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
- uses: actions/checkout@v3
- 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

qpod_r-base:
name: qpod/r-base
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: source ./tool.sh && build_image r-base latest docker_core/Dockerfile --build-arg "ARG_PROFILE_R=base" && push_image

qpod_r-std:
name: qpod/r-std
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- 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

qpod_r-latex:
name: qpod/r-latex
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image r-latex latest docker_core/Dockerfile \
Expand All @@ -112,7 +117,7 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image r-studio latest docker_core/Dockerfile \
Expand All @@ -126,31 +131,35 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: source ./tool.sh && build_image node latest docker_core/Dockerfile --build-arg "ARG_PROFILE_NODEJS=base" && push_image

qpod_jdk:
name: qpod/jdk
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: source ./tool.sh && build_image jdk latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" && push_image
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image jdk17 latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" --build-arg "VERSION_JDK=17" && push_image
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
build_image jdk8 latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JAVA=base" --build-arg "VERSION_JDK=8" && push_image

qpod_julia:
name: qpod/julia
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: source ./tool.sh && build_image julia latest docker_core/Dockerfile --build-arg "ARG_PROFILE_JULIA=base" && push_image

qpod_go:
name: qpod/go
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: source ./tool.sh && build_image go latest docker_core/Dockerfile --build-arg "ARG_PROFILE_GO=base" && push_image


Expand All @@ -161,7 +170,7 @@ jobs:
name: qpod/cuda_11.6
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image cuda_11.6 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04"
Expand All @@ -174,7 +183,7 @@ jobs:
name: qpod/cuda_11.2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image cuda_11.2 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04"
Expand All @@ -188,7 +197,7 @@ jobs:
name: qpod/cuda_10.2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image cuda_10.2 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04"
Expand All @@ -200,7 +209,7 @@ jobs:
name: qpod/cuda_10.0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image cuda_10.0 latest docker_atom/Dockerfile --build-arg "BASE_IMG=nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04"
Expand All @@ -213,7 +222,7 @@ jobs:
needs: qpod_cuda_10_0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image tf1-cuda100 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.0" --build-arg "ARG_PROFILE_PYTHON=tf1"
Expand All @@ -225,7 +234,7 @@ jobs:
needs: qpod_cuda_11_2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image tf2-cuda112 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.2" --build-arg "ARG_PROFILE_PYTHON=tf2"
Expand All @@ -237,7 +246,7 @@ jobs:
needs: qpod_cuda_11_6
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image torch-cuda116 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=torch"
Expand All @@ -249,7 +258,7 @@ jobs:
needs: qpod_cuda_10_2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image torch-cuda102 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.2" --build-arg "ARG_PROFILE_PYTHON=torch"
Expand All @@ -260,7 +269,7 @@ jobs:
needs: qpod_cuda_11_6
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image paddle-cuda116 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=paddle,mkl"
Expand All @@ -272,7 +281,7 @@ jobs:
needs: qpod_cuda_10_2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image paddle-cuda102 latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_10.2" --build-arg "ARG_PROFILE_PYTHON=paddle,mkl"
Expand All @@ -284,7 +293,7 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
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"
Expand All @@ -296,7 +305,7 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
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"
Expand All @@ -308,7 +317,7 @@ jobs:
needs: qpod_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image py-cv latest docker_core/Dockerfile --build-arg "BASE_IMG=cuda_11.6" --build-arg "ARG_PROFILE_PYTHON=datascience,mkl,torch,cv"
Expand All @@ -320,7 +329,7 @@ jobs:
needs: qpod_cuda_11_6
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh && free_diskspace
build_image full-cuda-11.6 latest docker_core/Dockerfile \
Expand All @@ -337,7 +346,7 @@ jobs:
needs: qpod_core
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh
build_image core-dev latest docker_dev/Dockerfile \
Expand All @@ -350,7 +359,7 @@ jobs:
needs: qpod_core-cuda
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: |
source ./tool.sh && free_diskspace
build_image cuda-dev latest docker_dev/Dockerfile \
Expand Down
7 changes: 3 additions & 4 deletions docker_atom/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Distributed under the terms of the Modified BSD License.

# default value: Latest LTS version of Ubuntu (https://hub.docker.com/_/ubuntu)

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

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

SHELL ["/bin/bash", "-c"]
SHELL ["/bin/bash", "--login", "-c"]

# --> Install OS libraries and setup some configurations
RUN cd /tmp \
Expand Down
44 changes: 37 additions & 7 deletions docker_atom/work/script-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,24 @@ setup_mamba() {


setup_conda_postprocess() {
ln -sf ${CONDA_PREFIX}/bin/python3 /usr/bin/python

# If python exists, set pypi source
if [ -f "$(which python)" ]; then
cat >/etc/pip.conf <<EOF
[global]
progress_bar=off
root-user-action=ignore
# retries=5
# timeout=10
trusted-host=pypi.python.org pypi.org files.pythonhosted.org
# index-url=https://pypi.python.org/simple
EOF
fi

echo 'export PATH=$PATH:${CONDA_PREFIX}/bin' >> /etc/profile
ln -sf ${CONDA_PREFIX}/bin/conda /usr/bin/

conda config --system --prepend channels conda-forge \
&& conda config --system --set auto_update_conda false \
&& conda config --system --set show_channel_urls true \
Expand All @@ -42,15 +51,17 @@ EOF
}

setup_conda_with_mamba() {
mkdir -pv ${CONDA_PREFIX}
VERSION_PYTHON=$1; shift 1;
mamba install -y --root-prefix="${CONDA_PREFIX}" --prefix="${CONDA_PREFIX}" -c "conda-forge" conda pip python="${VERSION_PYTHON:-3.10}"
rm -rf /opt/conda/pkgs/*
rm -rf ${CONDA_PREFIX}/pkgs/*
setup_conda_postprocess
}

setup_conda_download() {
mkdir -pv ${CONDA_PREFIX}
wget -qO- "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-$(arch).sh" -O /tmp/conda.sh
bash /tmp/conda.sh -f -b -p /opt/conda
bash /tmp/conda.sh -f -b -p ${CONDA_PREFIX}/
rm -rf /tmp/conda.sh
setup_conda_postprocess
}
Expand Down Expand Up @@ -85,16 +96,35 @@ setup_nvtop() {


setup_java_base() {
VERSION_JDK=11 \
&& 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) \
&& echo "Installing JDK from: ${URL_OPENJDK}" \
&& install_tar_gz "${URL_OPENJDK}" && mv /opt/jdk-* /opt/jdk \
local VER_JDK=${VERSION_JDK:-"11"}
ARCH="x64"
echo "Use env var VERSION_JDK to specify JDK major version. If not specified, will install version 11 by default."
echo "Will install JDK version ${VER_JDK}"

JDK_PAGE_DOWNLOAD="https://www.oracle.com/java/technologies/downloads/" \
&& 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)

JDK_PAGE_RELEASE="https://www.oracle.com/java/technologies/javase/${VER_JDK}u-relnotes.html" \
&& JDK_VER_MINOR=$(curl -sL ${JDK_PAGE_RELEASE} | grep -P 'JDK \d..\d+' | grep -Po '[\d\.]{3,}' | head -n1) \
&& JDK_URL_MSFT="https://aka.ms/download-jdk/microsoft-jdk-${JDK_VER_MINOR}-linux-${ARCH}.tar.gz"

if [ "$VER_JDK" -gt 11 ] ; then
URL_OPENJDK=${JDK_URL_ORCA}
elif [ "$VER_JDK" -gt 8 ] ; then
URL_OPENJDK=${JDK_URL_MSFT}
else
echo "ORCA download URL ref: ${JDK_URL_ORCA}"
URL_OPENJDK="https://javadl.oracle.com/webapps/download/GetFile/1.8.0_341-b10/424b9da4b48848379167015dcc250d8d/linux-i586/jdk-8u341-linux-${ARCH}.tar.gz"
fi

echo "Installing JDK version ${VER_JDK} from: ${URL_OPENJDK}" \
&& install_tar_gz "${URL_OPENJDK}" && mv /opt/jdk* /opt/jdk \
&& ln -sf /opt/jdk/bin/* /usr/bin/ \
&& echo "@ Version of Java (java/javac):" && java -version && javac -version
}

setup_java_maven() {
VERSION_MAVEN=$1; shift 1; VERSION_MAVEN=${VERSION_MAVEN:-"3.8.5"} \
VERSION_MAVEN=$1; shift 1; VERSION_MAVEN=${VERSION_MAVEN:-"3.8.6"} \
&& install_zip "http://archive.apache.org/dist/maven/maven-3/${VERSION_MAVEN}/binaries/apache-maven-${VERSION_MAVEN}-bin.zip" \
&& mv /opt/apache-maven-${VERSION_MAVEN} /opt/maven \
&& ln -sf /opt/maven/bin/mvn* /usr/bin/ \
Expand Down
Loading