From 56df32de349a91166f842bf38efc02eb2db9b60c Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Thu, 24 Nov 2022 03:33:53 +0000
Subject: [PATCH] fix: rm unused base image infrastructure (now in single base)

---
 containers/cuda/Dockerfile          |  72 -----
 containers/cuda/bashrc              | 452 ----------------------------
 containers/oneapi/base.Dockerfile   |  70 -----
 containers/oneapi/bashrc            | 452 ----------------------------
 containers/oneapi/onedev.Dockerfile | 340 ---------------------
 5 files changed, 1386 deletions(-)
 delete mode 100644 containers/cuda/Dockerfile
 delete mode 100644 containers/cuda/bashrc
 delete mode 100644 containers/oneapi/base.Dockerfile
 delete mode 100644 containers/oneapi/bashrc
 delete mode 100644 containers/oneapi/onedev.Dockerfile

diff --git a/containers/cuda/Dockerfile b/containers/cuda/Dockerfile
deleted file mode 100644
index 947cd8aaf..000000000
--- a/containers/cuda/Dockerfile
+++ /dev/null
@@ -1,72 +0,0 @@
-#syntax=docker/dockerfile:1.2
-
-# Minimal container based on Intel oneAPI for up-to-date packages. 
-# Very lightweight container with a minimal build environment (LOL)
-
-FROM  nvidia/cuda:11.6.0-devel-ubuntu18.04
-LABEL maintainer="Wouter Deconinck <wouter.deconinck@umanitoba.ca"      \
-      name="cuda_base"                                                \
-      march="amd64"
-
-COPY bashrc /root/.bashrc
-
-ENV CLICOLOR_FORCE=1                                                    \
-    LANGUAGE=en_US.UTF-8                                                \
-    LANG=en_US.UTF-8                                                    \
-    LC_ALL=en_US.UTF-8
-
-## Install additional packages. Remove the auto-cleanup functionality
-## for docker, as we're using the new buildkit cache instead.
-## We also install gitlab-runner, from the buster package (as bullseye is not available atm)
-## TODO: libyaml-cpp-dev is a dependency for afterburner. We can probably remove
-##       this once afterburner is added to spack
-RUN --mount=type=cache,target=/var/cache/apt                            \
-    rm -f /etc/apt/apt.conf.d/docker-clean                              \
- && ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime          \
- && echo "US/Eastern" > /etc/timezone                                   \
- && apt-get -yqq update                                                 \
- && apt-get -yqq upgrade                                                \
- && apt-get -yqq install --no-install-recommends                        \
-        bc                                                              \
-        ca-certificates                                                 \
-        clang-format                                                    \
-        clang-tidy                                                      \
-        curl                                                            \
-        file                                                            \
-        build-essential                                                 \
-        gdb                                                             \
-        ghostscript                                                     \
-        git                                                             \
-        gnupg2                                                          \
-        gv                                                              \
-        iproute2                                                        \
-        iputils-ping                                                    \
-        iputils-tracepath                                               \
-        less                                                            \
-        libcbor-xs-perl                                                 \
-        libjson-xs-perl                                                 \
-        libyaml-cpp-dev                                                 \
-        locales                                                         \
-        lua-posix                                                       \
-        make                                                            \
-        nano                                                            \
-        openssh-client                                                  \
-        parallel                                                        \
-        poppler-utils                                                   \
-        time                                                            \
-        unzip                                                           \
-        valgrind                                                        \
-        vim-nox                                                         \
-        wget                                                            \
- && localedef -i en_US -f UTF-8 en_US.UTF-8                             \
- && gcc --version                                                       \
- && curl -L                                                             \
-    "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" \
-    | bash                                                              \
- && sed -i "s/bookworm/buster/"                                         \
-           /etc/apt/sources.list.d/runner_gitlab-runner.list            \
- && apt-get -yqq update                                                 \
- && apt-get -yqq install --no-install-recommends                        \
-        gitlab-runner                                                   \
- && apt-get -yqq autoremove                                             \
- && rm -rf /var/lib/apt/lists/*                                         
diff --git a/containers/cuda/bashrc b/containers/cuda/bashrc
deleted file mode 100644
index 4d1c1f348..000000000
--- a/containers/cuda/bashrc
+++ /dev/null
@@ -1,452 +0,0 @@
-#!/bin/bash
-iatest=$(expr index "$-" i)
-
-#######################################################
-# SOURCED ALIAS'S AND SCRIPTS BY zachbrowne.me
-#######################################################
-
-# Source global definitions
-if [ -f /etc/bashrc ]; then
-	 . /etc/bashrc
-fi
-
-# Enable bash programmable completion features in interactive shells
-if [ -f /usr/share/bash-completion/bash_completion ]; then
-	. /usr/share/bash-completion/bash_completion
-elif [ -f /etc/bash_completion ]; then
-	. /etc/bash_completion
-fi
-
-#######################################################
-# EXPORTS
-#######################################################
-
-# Disable the bell
-if [[ $iatest > 0 ]]; then bind "set bell-style visible"; fi
-
-# Expand the history size
-export HISTFILESIZE=10000
-export HISTSIZE=500
-
-# Don't put duplicate lines in the history and do not add lines that start with a space
-export HISTCONTROL=erasedups:ignoredups:ignorespace
-
-# Check the window size after each command and, if necessary, update the values of LINES and COLUMNS
-shopt -s checkwinsize
-
-# Causes bash to append to history instead of overwriting it so if you start a new terminal, you have old session history
-shopt -s histappend
-PROMPT_COMMAND='history -a'
-
-# Allow ctrl-S for history navigation (with ctrl-R)
-stty -ixon
-
-# Ignore case on auto-completion
-# Note: bind used instead of sticking these in .inputrc
-if [[ $iatest > 0 ]]; then bind "set completion-ignore-case on"; fi
-
-# Show auto-completion list automatically, without double tab
-if [[ $iatest > 0 ]]; then bind "set show-all-if-ambiguous On"; fi
-
-# Set the default editor
-export EDITOR=vim
-export VISUAL=vim
-alias pico='edit'
-alias spico='sedit'
-alias nano='edit'
-alias snano='sedit'
-
-# To have colors for ls and all grep commands such as grep, egrep and zgrep
-export CLICOLOR=1
-export LS_COLORS='no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:*.xml=00;31:'
-#export GREP_OPTIONS='--color=auto' #deprecated
-#alias grep="/usr/bin/grep $GREP_OPTIONS"
-#unset GREP_OPTIONS
-
-# Color for manpages in less makes manpages a little easier to read
-export LESS_TERMCAP_mb=$'\E[01;31m'
-export LESS_TERMCAP_md=$'\E[01;31m'
-export LESS_TERMCAP_me=$'\E[0m'
-export LESS_TERMCAP_se=$'\E[0m'
-export LESS_TERMCAP_so=$'\E[01;44;33m'
-export LESS_TERMCAP_ue=$'\E[0m'
-export LESS_TERMCAP_us=$'\E[01;32m'
-
-#######################################################
-# GENERAL ALIAS'S
-#######################################################
-
-# Alias's to modified commands
-alias cp='cp -i'
-alias mv='mv -i'
-alias rm='rm -iv'
-alias mkdir='mkdir -p'
-alias ps='ps auxf'
-alias ping='ping -c 10'
-alias less='less -R'
-alias cls='clear'
-alias apt-get='apt-get'
-alias multitail='multitail --no-repeat -c'
-alias freshclam='freshclam'
-alias vi='vim'
-alias vis='vim "+set si"'
-
-# Change directory aliases
-alias home='cd ~'
-alias cd..='cd ..'
-alias ..='cd ..'
-alias ...='cd ../..'
-alias ....='cd ../../..'
-alias .....='cd ../../../..'
-
-# cd into the old directory
-alias bd='cd "$OLDPWD"'
-
-# Remove a directory and all files
-alias rmd='/bin/rm  --recursive --force --verbose '
-
-# Alias's for multiple directory listing commands
-alias la='ls -Alh' # show hidden files
-alias ls='ls -aFh --color=always' # add colors and file type extensions
-alias lx='ls -lXBh' # sort by extension
-alias lk='ls -lSrh' # sort by size
-alias lc='ls -lcrh' # sort by change time
-alias lu='ls -lurh' # sort by access time
-alias lr='ls -lRh' # recursive ls
-alias lt='ls -ltrh' # sort by date
-alias lm='ls -alh |more' # pipe through 'more'
-alias lw='ls -xAh' # wide listing format
-alias ll='ls -Fls' # long listing format
-alias labc='ls -lap' #alphabetical sort
-alias lf="ls -l | egrep -v '^d'" # files only
-alias ldir="ls -l | egrep '^d'" # directories only
-
-# alias chmod commands
-alias mx='chmod a+x'
-alias 000='chmod -R 000'
-alias 644='chmod -R 644'
-alias 666='chmod -R 666'
-alias 755='chmod -R 755'
-alias 777='chmod -R 777'
-
-# Search command line history
-alias h="history | grep "
-
-# Search running processes
-alias p="ps aux | grep "
-alias topcpu="/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10"
-
-# Search files in the current folder
-alias f="find . | grep "
-
-# Count all files (recursively) in the current folder
-alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null"
-
-# To see if a command is aliased, a file, or a built-in command
-alias checkcommand="type -t"
-
-# Show all logs in /var/log
-alias logs="sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f"
-
-# SHA1
-alias sha1='openssl sha1'
-
-#######################################################
-# SPECIAL FUNCTIONS
-#######################################################
-
-# Extracts any archive(s) (if unp isn't installed)
-extract () {
-	for archive in $*; do
-		if [ -f $archive ] ; then
-			case $archive in
-				*.tar.bz2)   tar xvjf $archive    ;;
-				*.tar.gz)    tar xvzf $archive    ;;
-				*.bz2)       bunzip2 $archive     ;;
-				*.rar)       rar x $archive       ;;
-				*.gz)        gunzip $archive      ;;
-				*.tar)       tar xvf $archive     ;;
-				*.tbz2)      tar xvjf $archive    ;;
-				*.tgz)       tar xvzf $archive    ;;
-				*.zip)       unzip $archive       ;;
-				*.Z)         uncompress $archive  ;;
-				*.7z)        7z x $archive        ;;
-				*)           echo "don't know how to extract '$archive'..." ;;
-			esac
-		else
-			echo "'$archive' is not a valid file!"
-		fi
-	done
-}
-
-# Searches for text in all files in the current folder
-ftext ()
-{
-	# -i case-insensitive
-	# -I ignore binary files
-	# -H causes filename to be printed
-	# -r recursive search
-	# -n causes line number to be printed
-	# optional: -F treat search term as a literal, not a regular expression
-	# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
-	grep -iIHrn --color=always "$1" . | less -r
-}
-
-# Copy file with a progress bar
-cpp()
-{
-	set -e
-	strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
-	| awk '{
-	count += $NF
-	if (count % 10 == 0) {
-		percent = count / total_size * 100
-		printf "%3d%% [", percent
-		for (i=0;i<=percent;i++)
-			printf "="
-			printf ">"
-			for (i=percent;i<100;i++)
-				printf " "
-				printf "]\r"
-			}
-		}
-	END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
-}
-
-# Copy and go to the directory
-cpg ()
-{
-	if [ -d "$2" ];then
-		cp $1 $2 && cd $2
-	else
-		cp $1 $2
-	fi
-}
-
-# Move and go to the directory
-mvg ()
-{
-	if [ -d "$2" ];then
-		mv $1 $2 && cd $2
-	else
-		mv $1 $2
-	fi
-}
-
-# Create and go to the directory
-mkdirg ()
-{
-	mkdir -p $1
-	cd $1
-}
-
-# Goes up a specified number of directories  (i.e. up 4)
-up ()
-{
-	local d=""
-	limit=$1
-	for ((i=1 ; i <= limit ; i++))
-		do
-			d=$d/..
-		done
-	d=$(echo $d | sed 's/^\///')
-	if [ -z "$d" ]; then
-		d=..
-	fi
-	cd $d
-}
-
-#Automatically do an ls after each cd
-# cd ()
-# {
-# 	if [ -n "$1" ]; then
-# 		builtin cd "$@" && ls
-# 	else
-# 		builtin cd ~ && ls
-# 	fi
-# }
-
-# Returns the last 2 fields of the working directory
-pwdtail ()
-{
-	pwd|awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
-}
-
-# Show the current version of the operating system
-ver ()
-{
-	local dtype
-	dtype=$(distribution)
-
-	if [ $dtype == "redhat" ]; then
-		if [ -s /etc/redhat-release ]; then
-			cat /etc/redhat-release && uname -a
-		else
-			cat /etc/issue && uname -a
-		fi
-	elif [ $dtype == "suse" ]; then
-		cat /etc/SuSE-release
-	elif [ $dtype == "debian" ]; then
-		lsb_release -a
-		# sudo cat /etc/issue && sudo cat /etc/issue.net && sudo cat /etc/lsb_release && sudo cat /etc/os-release # Linux Mint option 2
-	elif [ $dtype == "gentoo" ]; then
-		cat /etc/gentoo-release
-	elif [ $dtype == "mandriva" ]; then
-		cat /etc/mandriva-release
-	elif [ $dtype == "slackware" ]; then
-		cat /etc/slackware-version
-	else
-		if [ -s /etc/issue ]; then
-			cat /etc/issue
-		else
-			echo "Error: Unknown distribution"
-			exit 1
-		fi
-	fi
-}
-
-# For some reason, rot13 pops up everywhere
-rot13 () {
-	if [ $# -eq 0 ]; then
-		tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
-	else
-		echo $* | tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
-	fi
-}
-
-# Trim leading and trailing spaces (for scripts)
-trim()
-{
-	local var=$@
-	var="${var#"${var%%[![:space:]]*}"}"  # remove leading whitespace characters
-	var="${var%"${var##*[![:space:]]}"}"  # remove trailing whitespace characters
-	echo -n "$var"
-}
-
-#######################################################
-# Set the ultimate amazing command prompt
-#######################################################
-
-alias cpu="grep 'cpu ' /proc/stat | awk '{usage=(\$2+\$4)*100/(\$2+\$4+\$5)} END {print usage}' | awk '{printf(\"%.1f\n\", \$1)}'"
-function __setprompt
-{
-	local LAST_COMMAND=$? # Must come first!
-
-	# Define colors
-	local LIGHTGRAY="\033[0;37m"
-	local WHITE="\033[1;37m"
-	local BLACK="\033[0;30m"
-	local DARKGRAY="\033[1;30m"
-	local RED="\033[0;31m"
-	local LIGHTRED="\033[1;31m"
-	local GREEN="\033[0;32m"
-	local LIGHTGREEN="\033[1;32m"
-	local BROWN="\033[0;33m"
-	local YELLOW="\033[1;33m"
-	local BLUE="\033[0;34m"
-	local LIGHTBLUE="\033[1;34m"
-	local MAGENTA="\033[0;35m"
-	local LIGHTMAGENTA="\033[1;35m"
-	local CYAN="\033[0;36m"
-	local LIGHTCYAN="\033[1;36m"
-	local NOCOLOR="\033[0m"
-
-	# Show error exit code if there is one
-	if [[ $LAST_COMMAND != 0 ]]; then
-		# PS1="\[${RED}\](\[${LIGHTRED}\]ERROR\[${RED}\])-(\[${LIGHTRED}\]Exit Code \[${WHITE}\]${LAST_COMMAND}\[${RED}\])-(\[${LIGHTRED}\]"
-		PS1="\[${DARKGRAY}\](\[${LIGHTRED}\]ERROR\[${DARKGRAY}\])-(\[${RED}\]Exit Code \[${LIGHTRED}\]${LAST_COMMAND}\[${DARKGRAY}\])-(\[${RED}\]"
-		if [[ $LAST_COMMAND == 1 ]]; then
-			PS1+="General error"
-		elif [ $LAST_COMMAND == 2 ]; then
-			PS1+="Missing keyword, command, or permission problem"
-		elif [ $LAST_COMMAND == 126 ]; then
-			PS1+="Permission problem or command is not an executable"
-		elif [ $LAST_COMMAND == 127 ]; then
-			PS1+="Command not found"
-		elif [ $LAST_COMMAND == 128 ]; then
-			PS1+="Invalid argument to exit"
-		elif [ $LAST_COMMAND == 129 ]; then
-			PS1+="Fatal error signal 1"
-		elif [ $LAST_COMMAND == 130 ]; then
-			PS1+="Script terminated by Control-C"
-		elif [ $LAST_COMMAND == 131 ]; then
-			PS1+="Fatal error signal 3"
-		elif [ $LAST_COMMAND == 132 ]; then
-			PS1+="Fatal error signal 4"
-		elif [ $LAST_COMMAND == 133 ]; then
-			PS1+="Fatal error signal 5"
-		elif [ $LAST_COMMAND == 134 ]; then
-			PS1+="Fatal error signal 6"
-		elif [ $LAST_COMMAND == 135 ]; then
-			PS1+="Fatal error signal 7"
-		elif [ $LAST_COMMAND == 136 ]; then
-			PS1+="Fatal error signal 8"
-		elif [ $LAST_COMMAND == 137 ]; then
-			PS1+="Fatal error signal 9"
-		elif [ $LAST_COMMAND -gt 255 ]; then
-			PS1+="Exit status out of range"
-		else
-			PS1+="Unknown error code"
-		fi
-		PS1+="\[${DARKGRAY}\])\[${NOCOLOR}\]\n"
-	else
-		PS1=""
-	fi
-
-	# Date
-	PS1+="\[${DARKGRAY}\](\[${CYAN}\]\$(date +%a) $(date +%b-'%-m')" # Date
-	PS1+="${BLUE} $(date +'%-I':%M:%S%P)\[${DARKGRAY}\])-" # Time
-
-	# CPU
-	PS1+="(\[${MAGENTA}\]CPU $(cpu)%"
-
-	# Jobs
-	PS1+="\[${DARKGRAY}\]:\[${MAGENTA}\]\j"
-
-	# Network Connections (for a server - comment out for non-server)
-	PS1+="\[${DARKGRAY}\]:\[${MAGENTA}\]Net $(awk 'END {print NR}' /proc/net/tcp)"
-
-	PS1+="\[${DARKGRAY}\])-"
-
-	# User and server
-	local SSH_IP=`echo $SSH_CLIENT | awk '{ print $1 }'`
-	local SSH2_IP=`echo $SSH2_CLIENT | awk '{ print $1 }'`
-	if [ $SSH2_IP ] || [ $SSH_IP ] ; then
-		PS1+="(\[${RED}\]\u@\h"
-	else
-		PS1+="(\[${RED}\]\u"
-	fi
-
-	# Current directory
-	PS1+="\[${DARKGRAY}\]:\[${BROWN}\]\w\[${DARKGRAY}\])-"
-
-	# Total size of files in current directory
-	PS1+="(\[${GREEN}\]$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')\[${DARKGRAY}\]:"
-
-	# Number of files
-	PS1+="\[${GREEN}\]\$(/bin/ls -A -1 | /usr/bin/wc -l)\[${DARKGRAY}\])"
-
-	# Skip to the next line
-	PS1+="\n"
-
-  # singularity?
-  if [ -e /environment ] ; then
-      PS1+="singularity"
-  fi
-
-	if [[ $EUID -ne 0 ]]; then
-		PS1+="\[${GREEN}\]>\[${NOCOLOR}\] " # Normal user
-	else
-		PS1+="\[${RED}\]>\[${NOCOLOR}\] " # Root user
-	fi
-
-	# PS2 is used to continue a command using the \ character
-	PS2="\[${DARKGRAY}\]>\[${NOCOLOR}\] "
-
-	# PS3 is used to enter a number choice in a script
-	PS3='Please enter a number from above list: '
-
-	# PS4 is used for tracing a script in debug mode
-	PS4='\[${DARKGRAY}\]+\[${NOCOLOR}\] '
-}
-PROMPT_COMMAND='__setprompt'
diff --git a/containers/oneapi/base.Dockerfile b/containers/oneapi/base.Dockerfile
deleted file mode 100644
index b7a5d0122..000000000
--- a/containers/oneapi/base.Dockerfile
+++ /dev/null
@@ -1,70 +0,0 @@
-#syntax=docker/dockerfile:1.2
-ARG BASEIMAGE="intel/oneapi-hpckit:2022.2-devel-ubuntu20.04"
-
-# Minimal container based on Intel oneAPI for up-to-date packages. 
-# Very lightweight container with a minimal build environment (LOL)
-
-FROM  ${BASEIMAGE}
-LABEL maintainer="Wouter Deconinck <wouter.deconinck@umanitoba.ca"      \
-      name="oneapi_base"                                                \
-      march="amd64"
-
-COPY bashrc /root/.bashrc
-
-ENV CLICOLOR_FORCE=1                                                    \
-    LANGUAGE=en_US.UTF-8                                                \
-    LANG=en_US.UTF-8                                                    \
-    LC_ALL=en_US.UTF-8
-
-## Install additional packages. Remove the auto-cleanup functionality
-## for docker, as we're using the new buildkit cache instead.
-## We also install gitlab-runner, from the buster package (as bullseye is not available atm)
-RUN --mount=type=cache,target=/var/cache/apt                            \
-    rm -f /etc/apt/apt.conf.d/docker-clean                              \
- && ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime          \
- && echo "US/Eastern" > /etc/timezone                                   \
- && apt-get -yqq update                                                 \
- && apt-get -yqq upgrade                                                \
- && apt-get -yqq install --no-install-recommends                        \
-        bc                                                              \
-        ca-certificates                                                 \
-        clang-format                                                    \
-        clang-tidy                                                      \
-        curl                                                            \
-        file                                                            \
-        build-essential                                                 \
-        gdb                                                             \
-        ghostscript                                                     \
-        git                                                             \
-        gnupg2                                                          \
-        gv                                                              \
-        iproute2                                                        \
-        iputils-ping                                                    \
-        iputils-tracepath                                               \
-        less                                                            \
-        libcbor-xs-perl                                                 \
-        libjson-xs-perl                                                 \
-        locales                                                         \
-        lua-posix                                                       \
-        make                                                            \
-        nano                                                            \
-        openssh-client                                                  \
-        parallel                                                        \
-        poppler-utils                                                   \
-        time                                                            \
-        unzip                                                           \
-        valgrind                                                        \
-        vim-nox                                                         \
-        wget                                                            \
- && localedef -i en_US -f UTF-8 en_US.UTF-8                             \
- && gcc --version                                                       \
- && curl -L                                                             \
-    "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" \
-    | bash                                                              \
- && sed -i "s/bookworm/buster/"                                         \
-           /etc/apt/sources.list.d/runner_gitlab-runner.list            \
- && apt-get -yqq update                                                 \
- && apt-get -yqq install --no-install-recommends                        \
-        gitlab-runner                                                   \
- && apt-get -yqq autoremove                                             \
- && rm -rf /var/lib/apt/lists/*                                         
diff --git a/containers/oneapi/bashrc b/containers/oneapi/bashrc
deleted file mode 100644
index 4d1c1f348..000000000
--- a/containers/oneapi/bashrc
+++ /dev/null
@@ -1,452 +0,0 @@
-#!/bin/bash
-iatest=$(expr index "$-" i)
-
-#######################################################
-# SOURCED ALIAS'S AND SCRIPTS BY zachbrowne.me
-#######################################################
-
-# Source global definitions
-if [ -f /etc/bashrc ]; then
-	 . /etc/bashrc
-fi
-
-# Enable bash programmable completion features in interactive shells
-if [ -f /usr/share/bash-completion/bash_completion ]; then
-	. /usr/share/bash-completion/bash_completion
-elif [ -f /etc/bash_completion ]; then
-	. /etc/bash_completion
-fi
-
-#######################################################
-# EXPORTS
-#######################################################
-
-# Disable the bell
-if [[ $iatest > 0 ]]; then bind "set bell-style visible"; fi
-
-# Expand the history size
-export HISTFILESIZE=10000
-export HISTSIZE=500
-
-# Don't put duplicate lines in the history and do not add lines that start with a space
-export HISTCONTROL=erasedups:ignoredups:ignorespace
-
-# Check the window size after each command and, if necessary, update the values of LINES and COLUMNS
-shopt -s checkwinsize
-
-# Causes bash to append to history instead of overwriting it so if you start a new terminal, you have old session history
-shopt -s histappend
-PROMPT_COMMAND='history -a'
-
-# Allow ctrl-S for history navigation (with ctrl-R)
-stty -ixon
-
-# Ignore case on auto-completion
-# Note: bind used instead of sticking these in .inputrc
-if [[ $iatest > 0 ]]; then bind "set completion-ignore-case on"; fi
-
-# Show auto-completion list automatically, without double tab
-if [[ $iatest > 0 ]]; then bind "set show-all-if-ambiguous On"; fi
-
-# Set the default editor
-export EDITOR=vim
-export VISUAL=vim
-alias pico='edit'
-alias spico='sedit'
-alias nano='edit'
-alias snano='sedit'
-
-# To have colors for ls and all grep commands such as grep, egrep and zgrep
-export CLICOLOR=1
-export LS_COLORS='no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:*.xml=00;31:'
-#export GREP_OPTIONS='--color=auto' #deprecated
-#alias grep="/usr/bin/grep $GREP_OPTIONS"
-#unset GREP_OPTIONS
-
-# Color for manpages in less makes manpages a little easier to read
-export LESS_TERMCAP_mb=$'\E[01;31m'
-export LESS_TERMCAP_md=$'\E[01;31m'
-export LESS_TERMCAP_me=$'\E[0m'
-export LESS_TERMCAP_se=$'\E[0m'
-export LESS_TERMCAP_so=$'\E[01;44;33m'
-export LESS_TERMCAP_ue=$'\E[0m'
-export LESS_TERMCAP_us=$'\E[01;32m'
-
-#######################################################
-# GENERAL ALIAS'S
-#######################################################
-
-# Alias's to modified commands
-alias cp='cp -i'
-alias mv='mv -i'
-alias rm='rm -iv'
-alias mkdir='mkdir -p'
-alias ps='ps auxf'
-alias ping='ping -c 10'
-alias less='less -R'
-alias cls='clear'
-alias apt-get='apt-get'
-alias multitail='multitail --no-repeat -c'
-alias freshclam='freshclam'
-alias vi='vim'
-alias vis='vim "+set si"'
-
-# Change directory aliases
-alias home='cd ~'
-alias cd..='cd ..'
-alias ..='cd ..'
-alias ...='cd ../..'
-alias ....='cd ../../..'
-alias .....='cd ../../../..'
-
-# cd into the old directory
-alias bd='cd "$OLDPWD"'
-
-# Remove a directory and all files
-alias rmd='/bin/rm  --recursive --force --verbose '
-
-# Alias's for multiple directory listing commands
-alias la='ls -Alh' # show hidden files
-alias ls='ls -aFh --color=always' # add colors and file type extensions
-alias lx='ls -lXBh' # sort by extension
-alias lk='ls -lSrh' # sort by size
-alias lc='ls -lcrh' # sort by change time
-alias lu='ls -lurh' # sort by access time
-alias lr='ls -lRh' # recursive ls
-alias lt='ls -ltrh' # sort by date
-alias lm='ls -alh |more' # pipe through 'more'
-alias lw='ls -xAh' # wide listing format
-alias ll='ls -Fls' # long listing format
-alias labc='ls -lap' #alphabetical sort
-alias lf="ls -l | egrep -v '^d'" # files only
-alias ldir="ls -l | egrep '^d'" # directories only
-
-# alias chmod commands
-alias mx='chmod a+x'
-alias 000='chmod -R 000'
-alias 644='chmod -R 644'
-alias 666='chmod -R 666'
-alias 755='chmod -R 755'
-alias 777='chmod -R 777'
-
-# Search command line history
-alias h="history | grep "
-
-# Search running processes
-alias p="ps aux | grep "
-alias topcpu="/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10"
-
-# Search files in the current folder
-alias f="find . | grep "
-
-# Count all files (recursively) in the current folder
-alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null"
-
-# To see if a command is aliased, a file, or a built-in command
-alias checkcommand="type -t"
-
-# Show all logs in /var/log
-alias logs="sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f"
-
-# SHA1
-alias sha1='openssl sha1'
-
-#######################################################
-# SPECIAL FUNCTIONS
-#######################################################
-
-# Extracts any archive(s) (if unp isn't installed)
-extract () {
-	for archive in $*; do
-		if [ -f $archive ] ; then
-			case $archive in
-				*.tar.bz2)   tar xvjf $archive    ;;
-				*.tar.gz)    tar xvzf $archive    ;;
-				*.bz2)       bunzip2 $archive     ;;
-				*.rar)       rar x $archive       ;;
-				*.gz)        gunzip $archive      ;;
-				*.tar)       tar xvf $archive     ;;
-				*.tbz2)      tar xvjf $archive    ;;
-				*.tgz)       tar xvzf $archive    ;;
-				*.zip)       unzip $archive       ;;
-				*.Z)         uncompress $archive  ;;
-				*.7z)        7z x $archive        ;;
-				*)           echo "don't know how to extract '$archive'..." ;;
-			esac
-		else
-			echo "'$archive' is not a valid file!"
-		fi
-	done
-}
-
-# Searches for text in all files in the current folder
-ftext ()
-{
-	# -i case-insensitive
-	# -I ignore binary files
-	# -H causes filename to be printed
-	# -r recursive search
-	# -n causes line number to be printed
-	# optional: -F treat search term as a literal, not a regular expression
-	# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
-	grep -iIHrn --color=always "$1" . | less -r
-}
-
-# Copy file with a progress bar
-cpp()
-{
-	set -e
-	strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
-	| awk '{
-	count += $NF
-	if (count % 10 == 0) {
-		percent = count / total_size * 100
-		printf "%3d%% [", percent
-		for (i=0;i<=percent;i++)
-			printf "="
-			printf ">"
-			for (i=percent;i<100;i++)
-				printf " "
-				printf "]\r"
-			}
-		}
-	END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
-}
-
-# Copy and go to the directory
-cpg ()
-{
-	if [ -d "$2" ];then
-		cp $1 $2 && cd $2
-	else
-		cp $1 $2
-	fi
-}
-
-# Move and go to the directory
-mvg ()
-{
-	if [ -d "$2" ];then
-		mv $1 $2 && cd $2
-	else
-		mv $1 $2
-	fi
-}
-
-# Create and go to the directory
-mkdirg ()
-{
-	mkdir -p $1
-	cd $1
-}
-
-# Goes up a specified number of directories  (i.e. up 4)
-up ()
-{
-	local d=""
-	limit=$1
-	for ((i=1 ; i <= limit ; i++))
-		do
-			d=$d/..
-		done
-	d=$(echo $d | sed 's/^\///')
-	if [ -z "$d" ]; then
-		d=..
-	fi
-	cd $d
-}
-
-#Automatically do an ls after each cd
-# cd ()
-# {
-# 	if [ -n "$1" ]; then
-# 		builtin cd "$@" && ls
-# 	else
-# 		builtin cd ~ && ls
-# 	fi
-# }
-
-# Returns the last 2 fields of the working directory
-pwdtail ()
-{
-	pwd|awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
-}
-
-# Show the current version of the operating system
-ver ()
-{
-	local dtype
-	dtype=$(distribution)
-
-	if [ $dtype == "redhat" ]; then
-		if [ -s /etc/redhat-release ]; then
-			cat /etc/redhat-release && uname -a
-		else
-			cat /etc/issue && uname -a
-		fi
-	elif [ $dtype == "suse" ]; then
-		cat /etc/SuSE-release
-	elif [ $dtype == "debian" ]; then
-		lsb_release -a
-		# sudo cat /etc/issue && sudo cat /etc/issue.net && sudo cat /etc/lsb_release && sudo cat /etc/os-release # Linux Mint option 2
-	elif [ $dtype == "gentoo" ]; then
-		cat /etc/gentoo-release
-	elif [ $dtype == "mandriva" ]; then
-		cat /etc/mandriva-release
-	elif [ $dtype == "slackware" ]; then
-		cat /etc/slackware-version
-	else
-		if [ -s /etc/issue ]; then
-			cat /etc/issue
-		else
-			echo "Error: Unknown distribution"
-			exit 1
-		fi
-	fi
-}
-
-# For some reason, rot13 pops up everywhere
-rot13 () {
-	if [ $# -eq 0 ]; then
-		tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
-	else
-		echo $* | tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
-	fi
-}
-
-# Trim leading and trailing spaces (for scripts)
-trim()
-{
-	local var=$@
-	var="${var#"${var%%[![:space:]]*}"}"  # remove leading whitespace characters
-	var="${var%"${var##*[![:space:]]}"}"  # remove trailing whitespace characters
-	echo -n "$var"
-}
-
-#######################################################
-# Set the ultimate amazing command prompt
-#######################################################
-
-alias cpu="grep 'cpu ' /proc/stat | awk '{usage=(\$2+\$4)*100/(\$2+\$4+\$5)} END {print usage}' | awk '{printf(\"%.1f\n\", \$1)}'"
-function __setprompt
-{
-	local LAST_COMMAND=$? # Must come first!
-
-	# Define colors
-	local LIGHTGRAY="\033[0;37m"
-	local WHITE="\033[1;37m"
-	local BLACK="\033[0;30m"
-	local DARKGRAY="\033[1;30m"
-	local RED="\033[0;31m"
-	local LIGHTRED="\033[1;31m"
-	local GREEN="\033[0;32m"
-	local LIGHTGREEN="\033[1;32m"
-	local BROWN="\033[0;33m"
-	local YELLOW="\033[1;33m"
-	local BLUE="\033[0;34m"
-	local LIGHTBLUE="\033[1;34m"
-	local MAGENTA="\033[0;35m"
-	local LIGHTMAGENTA="\033[1;35m"
-	local CYAN="\033[0;36m"
-	local LIGHTCYAN="\033[1;36m"
-	local NOCOLOR="\033[0m"
-
-	# Show error exit code if there is one
-	if [[ $LAST_COMMAND != 0 ]]; then
-		# PS1="\[${RED}\](\[${LIGHTRED}\]ERROR\[${RED}\])-(\[${LIGHTRED}\]Exit Code \[${WHITE}\]${LAST_COMMAND}\[${RED}\])-(\[${LIGHTRED}\]"
-		PS1="\[${DARKGRAY}\](\[${LIGHTRED}\]ERROR\[${DARKGRAY}\])-(\[${RED}\]Exit Code \[${LIGHTRED}\]${LAST_COMMAND}\[${DARKGRAY}\])-(\[${RED}\]"
-		if [[ $LAST_COMMAND == 1 ]]; then
-			PS1+="General error"
-		elif [ $LAST_COMMAND == 2 ]; then
-			PS1+="Missing keyword, command, or permission problem"
-		elif [ $LAST_COMMAND == 126 ]; then
-			PS1+="Permission problem or command is not an executable"
-		elif [ $LAST_COMMAND == 127 ]; then
-			PS1+="Command not found"
-		elif [ $LAST_COMMAND == 128 ]; then
-			PS1+="Invalid argument to exit"
-		elif [ $LAST_COMMAND == 129 ]; then
-			PS1+="Fatal error signal 1"
-		elif [ $LAST_COMMAND == 130 ]; then
-			PS1+="Script terminated by Control-C"
-		elif [ $LAST_COMMAND == 131 ]; then
-			PS1+="Fatal error signal 3"
-		elif [ $LAST_COMMAND == 132 ]; then
-			PS1+="Fatal error signal 4"
-		elif [ $LAST_COMMAND == 133 ]; then
-			PS1+="Fatal error signal 5"
-		elif [ $LAST_COMMAND == 134 ]; then
-			PS1+="Fatal error signal 6"
-		elif [ $LAST_COMMAND == 135 ]; then
-			PS1+="Fatal error signal 7"
-		elif [ $LAST_COMMAND == 136 ]; then
-			PS1+="Fatal error signal 8"
-		elif [ $LAST_COMMAND == 137 ]; then
-			PS1+="Fatal error signal 9"
-		elif [ $LAST_COMMAND -gt 255 ]; then
-			PS1+="Exit status out of range"
-		else
-			PS1+="Unknown error code"
-		fi
-		PS1+="\[${DARKGRAY}\])\[${NOCOLOR}\]\n"
-	else
-		PS1=""
-	fi
-
-	# Date
-	PS1+="\[${DARKGRAY}\](\[${CYAN}\]\$(date +%a) $(date +%b-'%-m')" # Date
-	PS1+="${BLUE} $(date +'%-I':%M:%S%P)\[${DARKGRAY}\])-" # Time
-
-	# CPU
-	PS1+="(\[${MAGENTA}\]CPU $(cpu)%"
-
-	# Jobs
-	PS1+="\[${DARKGRAY}\]:\[${MAGENTA}\]\j"
-
-	# Network Connections (for a server - comment out for non-server)
-	PS1+="\[${DARKGRAY}\]:\[${MAGENTA}\]Net $(awk 'END {print NR}' /proc/net/tcp)"
-
-	PS1+="\[${DARKGRAY}\])-"
-
-	# User and server
-	local SSH_IP=`echo $SSH_CLIENT | awk '{ print $1 }'`
-	local SSH2_IP=`echo $SSH2_CLIENT | awk '{ print $1 }'`
-	if [ $SSH2_IP ] || [ $SSH_IP ] ; then
-		PS1+="(\[${RED}\]\u@\h"
-	else
-		PS1+="(\[${RED}\]\u"
-	fi
-
-	# Current directory
-	PS1+="\[${DARKGRAY}\]:\[${BROWN}\]\w\[${DARKGRAY}\])-"
-
-	# Total size of files in current directory
-	PS1+="(\[${GREEN}\]$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')\[${DARKGRAY}\]:"
-
-	# Number of files
-	PS1+="\[${GREEN}\]\$(/bin/ls -A -1 | /usr/bin/wc -l)\[${DARKGRAY}\])"
-
-	# Skip to the next line
-	PS1+="\n"
-
-  # singularity?
-  if [ -e /environment ] ; then
-      PS1+="singularity"
-  fi
-
-	if [[ $EUID -ne 0 ]]; then
-		PS1+="\[${GREEN}\]>\[${NOCOLOR}\] " # Normal user
-	else
-		PS1+="\[${RED}\]>\[${NOCOLOR}\] " # Root user
-	fi
-
-	# PS2 is used to continue a command using the \ character
-	PS2="\[${DARKGRAY}\]>\[${NOCOLOR}\] "
-
-	# PS3 is used to enter a number choice in a script
-	PS3='Please enter a number from above list: '
-
-	# PS4 is used for tracing a script in debug mode
-	PS4='\[${DARKGRAY}\]+\[${NOCOLOR}\] '
-}
-PROMPT_COMMAND='__setprompt'
diff --git a/containers/oneapi/onedev.Dockerfile b/containers/oneapi/onedev.Dockerfile
deleted file mode 100644
index 03dfc288a..000000000
--- a/containers/oneapi/onedev.Dockerfile
+++ /dev/null
@@ -1,340 +0,0 @@
-# syntax=docker/dockerfile:1.2
-
-# Container based on Jug_dev with Intel oneAPI support.
-
-# Start with Debian-stable and layer oneAPI on top, prevents spack compiler errors.
-
-## ========================================================================================
-## STAGE 1: spack builder image
-## EIC builder image with spack
-## ========================================================================================
-
-ARG DOCKER_REGISTRY="eicweb.phy.anl.gov:4567/containers/eic_container/"
-ARG BASEIMAGE="debian_base"
-# Internal Tag will be set by GitLab CI
-ARG INTERNAL_TAG="testing"
-
-FROM ${DOCKER_REGISTRY}${BASEIMAGE}:${INTERNAL_TAG} as builder
-
-## Install some extra spack dependencies
-## Do not use Cache mount as it conflicts with oneapi stage
-RUN                                                                        \
-    rm -f /etc/apt/apt.conf.d/docker-clean                                 \
- && apt-get -yqq update                                                    \
- && apt-get -yqq install --no-install-recommends                           \
-        python3                                                            \
-        python3-dev                                                        \
-        python3-distutils                                                  \
-        python-is-python3                                                  \
- && rm -rf /var/lib/apt/lists/*
-
-
-## Setup spack
-## parts:
-ARG SPACK_ROOT=/opt/spack
-ARG SPACK_VERSION="develop"
-ARG SPACK_CHERRYPICKS=""
-RUN echo "Part 1: regular spack install (as in containerize)"           \
- && git clone https://github.com/spack/spack.git /tmp/spack-staging     \
- && cd /tmp/spack-staging                                               \
- && git checkout $SPACK_VERSION                                         \
- && if [ -n "$SPACK_CHERRYPICKS" ] ; then                               \
-      git cherry-pick -n $SPACK_CHERRYPICKS ;                           \
-    fi                                                                  \
- && cd -                                                                \
- && mkdir -p $SPACK_ROOT/opt/spack                                      \
- && cp -r /tmp/spack-staging/bin $SPACK_ROOT/bin                        \
- && cp -r /tmp/spack-staging/etc $SPACK_ROOT/etc                        \
- && cp -r /tmp/spack-staging/lib $SPACK_ROOT/lib                        \
- && cp -r /tmp/spack-staging/share $SPACK_ROOT/share                    \
- && cp -r /tmp/spack-staging/var $SPACK_ROOT/var                        \
- && cp -r /tmp/spack-staging/.git $SPACK_ROOT/.git                      \
- && rm -rf /tmp/spack-staging                                           \
- && echo 'export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH'\ 
-        >> $SPACK_ROOT/share/setup-env.sh                               \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash                \
-          /usr/sbin/docker-shell                                        \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash                \
-          /usr/sbin/interactive-shell                                   \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash                \
-          /usr/sbin/spack-env                                           \
- && echo "Part 2: Set target to generic x86_64"                         \
- && echo "packages:" > $SPACK_ROOT/etc/spack/packages.yaml              \
- && echo "  all:" >> $SPACK_ROOT/etc/spack/packages.yaml                \
- && echo "    target: [x86_64]" >> $SPACK_ROOT/etc/spack/packages.yaml  \
- && cat $SPACK_ROOT/etc/spack/packages.yaml                             \
- && echo "Part 3: Set config to allow use of more cores for builds"     \
- && echo "(and some other settings)"                                    \
- && echo "config:" > $SPACK_ROOT/etc/spack/config.yaml                  \
- && echo "  suppress_gpg_warnings: true"                                \
-        >> $SPACK_ROOT/etc/spack/config.yaml                            \
- && echo "  build_jobs: 64" >> $SPACK_ROOT/etc/spack/config.yaml        \
- && echo "  install_tree:" >> $SPACK_ROOT/etc/spack/config.yaml         \
- && echo "    root: /opt/software" >> $SPACK_ROOT/etc/spack/config.yaml \
- && cat $SPACK_ROOT/etc/spack/config.yaml
-
-SHELL ["docker-shell"]
-
-## Setup spack buildcache mirrors, including an internal
-## spack mirror using the docker build cache, and
-## a backup mirror on the internal B010 network
-RUN --mount=type=cache,target=/var/cache/spack-mirror                   \
-    export OLD_PATH=$PATH                                               \
- && export PATH=$PATH:$SPACK_ROOT/bin                                   \
- && spack mirror add docker /var/cache/spack-mirror                     \
- && spack mirror list
-
-## This variable will change whenevery either spack.yaml or our spack package
-## overrides change, triggering a rebuild
-ARG CACHE_BUST="hash"
-ARG CACHE_NUKE=""
-
-## Setup our custom package overrides
-ENV EICSPACK_ROOT=$SPACK_ROOT/var/spack/repos/eic-spack
-ARG EICSPACK_VERSION="$SPACK_VERSION"
-RUN git clone https://github.com/eic/eic-spack.git ${EICSPACK_ROOT}     \
- && git -C ${EICSPACK_ROOT} checkout ${EICSPACK_VERSION}                \
- && if [ -n "${EICSPACK_CHERRYPICKS}" ] ; then                          \
-      git -C ${EICSPACK_ROOT} cherry-pick -n ${EICSPACK_CHERRYPICKS} ;  \
-    fi                                                                  \
- && spack repo add --scope site "${EICSPACK_ROOT}"
-
-## Setup our custom environment
-COPY spack.yaml /opt/spack-environment/
-RUN rm -r /usr/local                                                    \
- && spack env activate /opt/spack-environment/                          \
- && spack concretize
-
-
-## Now execute the main build (or fetch from cache if possible)
-## note, no-check-signature is needed to allow the quicker signature-less
-## packages from the internal (docker) buildcache
-##
-## Optional, nuke the buildcache after install, before (re)caching
-## This is useful when going to completely different containers,
-## or intermittently to keep the buildcache step from taking too much time
-##
-## Update the local build cache if needed. Consists of 3 steps:
-## 1. Remove the B010 network buildcache (silicon)
-## 2. Get a list of all packages, and compare with what is already on
-##    the buildcache (using package hash)
-## 3. Add packages that need to be added to buildcache if any
-RUN --mount=type=cache,target=/var/cache/spack-mirror                   \
-    cd /opt/spack-environment                                           \
- && ls /var/cache/spack-mirror                                          \
- && spack env activate .                                                \
- && status=0                                                            \
- && spack install -j64 --no-check-signature                             \
-    || spack install -j64 --no-check-signature                          \
-    || spack install -j64 --no-check-signature                          \
-    || status=$?                                                        \
- && [ -z "${CACHE_NUKE}" ]                                              \
-    || rm -rf /var/cache/spack-mirror/build_cache/*                     \
- && mkdir -p /var/cache/spack-mirror/build_cache                        \
- && spack buildcache update-index -d /var/cache/spack-mirror            \
- && spack buildcache list --allarch --very-long                         \
-    | sed '/^$/d;/^--/d;s/@.\+//;s/\([a-z0-9]*\) \(.*\)/\2\/\1/'        \
-    | sort > tmp.buildcache.txt                                         \
- && spack find --format {name}/{hash} | sort                            \
-    | comm -23 - tmp.buildcache.txt                                     \
-    | xargs --no-run-if-empty                                           \
-      spack buildcache create --allow-root --only package --unsigned    \
-                              --directory /var/cache/spack-mirror       \
-                              --rebuild-index                           \
- && spack clean -a                                                      \
- && exit $status
-
-## Extra post-spack steps:
-##   - Python packages
-COPY requirements.txt /usr/local/etc/requirements.txt
-RUN --mount=type=cache,target=/var/cache/pip                            \
-    echo "Installing additional python packages"                        \
- && cd /opt/spack-environment && spack env activate .                   \
- && python -m pip install                                               \
-    --trusted-host pypi.org                                             \
-    --trusted-host files.pythonhosted.org                               \
-    --cache-dir /var/cache/pip                                          \
-    --requirement /usr/local/etc/requirements.txt                       \
-    --no-warn-script-location
-    # ^ Supress not on PATH Warnings
-
-## Including some small fixes:
-##   - Somehow PODIO env isn't automatically set, 
-##   - and Gaudi likes BINARY_TAG to be set
-RUN cd /opt/spack-environment                                           \
- && echo -n ""                                                          \
- && echo "Grabbing environment info"                                    \
- && spack env activate --sh -d .                                        \
-        | sed "s?LD_LIBRARY_PATH=?&/lib/x86_64-linux-gnu:?"             \
-        | sed '/MANPATH/ s/;$/:;/'                                      \
-    > /etc/profile.d/z10_spack_environment.sh                           \
- && cd /opt/spack-environment && spack env activate .                   \
- && echo -n ""                                                          \
- && echo "Add extra environment variables for Jug, Podio and Gaudi"     \
- && echo "export PODIO=$(spack location -i podio);"                     \
-        >> /etc/profile.d/z10_spack_environment.sh                      \
- && echo -n ""                                                          \
- && echo "Executing cmake patch for dd4hep 16.1"                        \                
- && sed -i "s/FIND_PACKAGE(Python/#&/" /usr/local/cmake/DD4hepBuild.cmake
-
-## make sure we have the entrypoints setup correctly
-ENTRYPOINT []
-CMD ["bash", "--rcfile", "/etc/profile", "-l"]
-USER 0
-WORKDIR /
-
-## ========================================================================================
-## STAGE 2: staging image with unnecessariy packages removed and stripped binaries
-## ========================================================================================
-FROM builder AS staging
-
-RUN cd /opt/spack-environment && spack env activate . && spack gc -y
-# Strip all the binaries
-# This reduces the image by factor of x2, so worth the effort
-# note that we do not strip python libraries as can cause issues in some cases
-RUN find -L /usr/local/*                                                \
-         -type d -name site-packages -prune -false -o                   \
-         -type f -not -name "zdll.lib" -not -name libtensorflow-lite.a  \
-         -exec realpath '{}' \;                                      \
-      | xargs file -i                                                   \
-      | grep 'charset=binary'                                           \
-      | grep 'x-executable\|x-archive\|x-sharedlib'                     \
-      | awk -F: '{print $1}' | xargs strip -s
-
-## Bugfix to address issues loading the Qt5 libraries on Linux kernels prior to 3.15
-## See
-#https://askubuntu.com/questions/1034313/ubuntu-18-4-libqt5core-so-5-cannot-open-shared-object-file-no-such-file-or-dir
-## and links therin for more info
-RUN strip --remove-section=.note.ABI-tag /usr/local/lib/libQt5Core.so
-
-RUN spack debug report                                                  \
-      | sed "s/^/ - /" | sed "s/\* \*\*//" | sed "s/\*\*//"             \
-    >> /etc/jug_info                                                    \
- && spack find --no-groups --long --variants | sed "s/^/ - /" >> /etc/jug_info
-
-COPY eic-shell /usr/local/bin/eic-shell
-COPY eic-info /usr/local/bin/eic-info
-COPY entrypoint.sh /usr/local/sbin/entrypoint.sh
-COPY eic-env.sh /etc/eic-env.sh
-COPY profile.d/a00_cleanup.sh /etc/profile.d
-COPY profile.d/z11_jug_env.sh /etc/profile.d
-COPY singularity.d /.singularity.d
-
-## Add minio client into /usr/local/bin
-ADD https://dl.min.io/client/mc/release/linux-amd64/mc /usr/local/bin
-RUN chmod a+x /usr/local/bin/mc
-
-## ========================================================================================
-## STAGE 3: Set up Intel OneAPI Toolkit
-## Use Intel's HPC-kit and Create Lean image from staging
-## ========================================================================================
-
-FROM intel/oneapi-hpckit:2022.2-devel-ubuntu20.04 AS oneapi
-
-
-COPY bashrc /root/.bashrc
-
-ENV CLICOLOR_FORCE=1                                                    \
-    LANGUAGE=en_US.UTF-8                                                \
-    LANG=en_US.UTF-8                                                    \
-    LC_ALL=en_US.UTF-8
-
-## Install additional packages. Remove the auto-cleanup functionality
-## for docker, as we're using the new buildkit cache instead.
-## We install gcc-10 and g++-10 as they are not installed by default in
-## Ubuntu 20.04.
-## TODO: libyaml-cpp-dev is a dependency for afterburner. We can probably remove
-##       this once afterburner is added to spack
-RUN --mount=type=cache,target=/var/cache/apt                            \
-    rm -f /etc/apt/apt.conf.d/docker-clean                              \
- && ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime          \
- && echo "US/Eastern" > /etc/timezone                                   \
- && apt-get -yqq update                                                 \
- && apt-get -yqq upgrade                                                \
- && apt-get -yqq install --no-install-recommends                        \
-        bc                                                              \
-        ca-certificates                                                 \
-        clang-format                                                    \
-        clang-tidy                                                      \
-        curl                                                            \
-        file                                                            \
-        build-essential                                                 \
-        g++-10                                                          \
-        gcc-10                                                          \
-        gdb                                                             \
-        ghostscript                                                     \
-        gfortran-10                                                     \
-        git                                                             \
-        gnupg2                                                          \
-        gv                                                              \
-        iproute2                                                        \
-        iputils-ping                                                    \
-        iputils-tracepath                                               \
-        less                                                            \
-        libcbor-xs-perl                                                 \
-        libjson-xs-perl                                                 \
-        libyaml-cpp-dev                                                 \
-        locales                                                         \
-        lua-posix                                                       \
-        make                                                            \
-        nano                                                            \
-        openssh-client                                                  \
-        parallel                                                        \
-        poppler-utils                                                   \
-        python3                                                         \
-        python3-dev                                                     \
-        python3-distutils                                               \
-        time                                                            \
-        unzip                                                           \
-        valgrind                                                        \
-        vim-nox                                                         \
-        wget                                                            \
- && localedef -i en_US -f UTF-8 en_US.UTF-8                             \
- && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100  \
- && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100  \
- && update-alternatives --install /usr/bin/gfortran gfortran            \
-                                  /usr/bin/gfortran-10 100              \
- && gcc --version                                                       \
- && curl -L                                                             \
-    "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" \
-    | bash                                                              \
- && apt-get -yqq update                                                 \
- && apt-get -yqq install --no-install-recommends                        \
-        gitlab-runner                                                   \
- && apt-get -yqq autoremove                                             \
- && rm -rf /var/lib/apt/lists/*                                         
-
-## copy over everything we need from staging in a single layer
-RUN --mount=from=staging,target=/staging                                \
-    rm -rf /usr/local                                                   \
- && cp -r /staging/opt/spack-environment /opt/spack-environment         \
- && cp -r /staging/opt/software /opt/software                           \
- && cp -r /staging/usr/._local /usr/._local                             \
- && cd /usr/._local                                                     \
- && PREFIX_PATH=$(realpath $(ls | tail -n1))                            \
- && echo "Found spack true prefix path to be $PREFIX_PATH"              \
- && cd -                                                                \
- && ln -s ${PREFIX_PATH} /usr/local                                     \
- && cp /staging/etc/profile.d/*.sh /etc/profile.d/                      \
- && cp /staging/etc/eic-env.sh /etc/eic-env.sh                          \
- && cp /staging/etc/jug_info /etc/jug_info                              \
- && cp -r /staging/.singularity.d /.singularity.d                        
-
-## set the jug_dev version and add the afterburner
-## TODO: move afterburner to spack when possible
-ARG JUG_VERSION=1
-ARG AFTERBURNER_VERSION=main
-RUN echo "" >> /etc/jug_info                                            \
- && echo " - jug_dev: ${JUG_VERSION}" >> /etc/jug_info
-
-## make entrypoint executable and set up oneAPI environment
-RUN chmod +x /usr/local/sbin/entrypoint.sh                              \
- && echo "source /opt/intel/oneapi/setvars.sh --force 2> /dev/null"     \
- >> /etc/profile
-
-## make sure we have the entrypoints setup correctly
-ENTRYPOINT ["/usr/local/sbin/entrypoint.sh"]
-CMD ["bash", "--rcfile", "/etc/profile", "-l"]
-USER 0
-WORKDIR /
-SHELL ["/usr/local/bin/eic-shell"]
-- 
GitLab