diff --git a/containers/builder/Dockerfile b/containers/builder/Dockerfile index c9428663b2d530e26a03770155201b33978f41e6..9388a43ee2e47d0054ef8bb919d18ddf8dc54f97 100644 --- a/containers/builder/Dockerfile +++ b/containers/builder/Dockerfile @@ -1,17 +1,17 @@ # Builder with Argonne EIC software # -FROM eicweb.phy.anl.gov:4567/containers/image_recipes/ubuntu_spack:0.15.3 +FROM eicweb.phy.anl.gov:4567/containers/image_recipes/debian_spack:0.15.4 LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \ name="eic_builder" \ group="eic_builder" \ march="native" \ - basedist="ubuntu" \ - base="ubuntu" + basedist="debian" \ + base="debian" -ENV DOCKERFILE_BASE=ubuntu \ - DOCKERFILE_DISTRO=ubuntu \ - DOCKERFILE_DISTRO_VERSION=20.04 \ +ENV DOCKERFILE_BASE=debian \ + DOCKERFILE_DISTRO=debian \ + DOCKERFILE_DISTRO_VERSION=20200803-testing \ SPACK_ROOT=/opt/spack \ DEBIAN_FRONTEND=noninteractive \ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ @@ -19,7 +19,6 @@ ENV DOCKERFILE_BASE=ubuntu \ ## Ensure an up-to-date custom package list RUN rm -rf $SPACK_ROOT/np-spack \ - && echo "Update spack for v2.1.3" \ && git clone https://eicweb.phy.anl.gov/EIC/np-spack.git $SPACK_ROOT/np-spack \ && cd $SPACK_ROOT/np-spack && git checkout v`spack --version` && cd - \ && rm -rf $SPACK_ROOT/np-spack/.git \ @@ -73,7 +72,7 @@ RUN cd /opt/spack-environment \ && spack env activate . \ && export PODIO=`spack find -p podio | grep software | awk '{print $2}'` \ && echo "export PODIO=${PODIO};" >> /etc/profile.d/z10_spack_environment.sh \ - && echo "export BINARY_TAG=x86_64-linux-gcc9-opt" >> /etc/profile.d/z10_spack_environment.sh + && echo "export BINARY_TAG=x86_64-linux-gcc10-opt" >> /etc/profile.d/z10_spack_environment.sh ## make sure we have the entrypoints setup correctly ENTRYPOINT [] diff --git a/containers/builder/spack.yaml b/containers/builder/spack.yaml index 532e2add5589c06be29d15a0cfe82ac029fc3bea..f520c32020ad5b5c6b26293aff622e5e1100c727 100644 --- a/containers/builder/spack.yaml +++ b/containers/builder/spack.yaml @@ -1,18 +1,18 @@ spack: specs: - - cmake@3.17.3 + - cmake@3.18.1 - fmt@6.1.2 cxxstd=17 - spdlog@1.5.0 - nlohmann-json - heppdt@3.04.01 - clhep@2.4.1.3 cxxstd=17 - eigen@3.3.7 - - python@3.7.7 + - python@3.7.8 - py-pip - py-numpy - py-pyyaml - xrootd@4.12.3 cxxstd=17 +python - - root@6.22.00 cxxstd=17 +dataframe +fftw +fortran +gdml +http +mlp +pythia8 +root7 +tmva +vc +xrootd +ssl ^mesa+opengl -llvm -osmesa + - root@6.22.00 cxxstd=17 +fftw +fortran +gdml +http +mlp +pythia8 +root7 +tmva +vc +xrootd +ssl ^mesa+opengl -llvm -osmesa - pythia8@8244 - hepmc3@3.2.2 +python +rootio - stow@2.2.2 diff --git a/containers/release/bashrc b/containers/release/bashrc index 307c4da3fbae2c10be41c940d1fbed8f1a66d47b..4d1c1f3487e728bb91c447e29c966138ef8ddedb 100644 --- a/containers/release/bashrc +++ b/containers/release/bashrc @@ -60,8 +60,8 @@ alias snano='sedit' 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="`which grep` $GREP_OPTIONS" -unset GREP_OPTIONS +#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' @@ -72,39 +72,9 @@ export LESS_TERMCAP_so=$'\E[01;44;33m' export LESS_TERMCAP_ue=$'\E[0m' export LESS_TERMCAP_us=$'\E[01;32m' -####################################################### -# MACHINE SPECIFIC ALIAS'S -####################################################### - -# Alias's for SSH -# alias SERVERNAME='ssh YOURWEBSITE.com -l USERNAME -p PORTNUMBERHERE' - -# Alias's to change the directory -#alias web='cd /var/www/html' - -# Alias's to mount ISO files -# mount -o loop /home/NAMEOFISO.iso /home/ISOMOUNTDIR/ -# umount /home/NAMEOFISO.iso -# (Both commands done as root only.) - ####################################################### # GENERAL ALIAS'S ####################################################### -# To temporarily bypass an alias, we preceed the command with a \ -# EG: the ls command is aliased, but to use the normal ls command you would type \ls - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - -# Edit this .bashrc file -#alias ebrc='edit ~/.bashrc' - -# Show help for this .bashrc file -#alias hlp='less ~/.bashrc_help' - -# alias to show the date -alias da='date "+%Y-%m-%d %A %T %Z"' # Alias's to modified commands alias cp='cp -i' @@ -175,32 +145,6 @@ alias countfiles="for t in files links directories; do echo \`find . -type \${t: # To see if a command is aliased, a file, or a built-in command alias checkcommand="type -t" -# Show current network connections to the server -alias ipview="netstat -anpl | grep :80 | awk {'print \$5'} | cut -d\":\" -f1 | sort | uniq -c | sort -n | sed -e 's/^ *//' -e 's/ *\$//'" - -# Show open ports -alias openports='netstat -nape --inet' - -# Alias's for safe and forced reboots -alias rebootsafe='sudo shutdown -r now' -alias rebootforce='sudo shutdown -r -n now' - -# Alias's to show disk space and space used in a folder -alias diskspace="du -S | sort -n -r |more" -alias folders='du -h --max-depth=1' -alias folderssort='find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn' -alias tree='tree -CAhF --dirsfirst' -alias treed='tree -CAFd' -alias mountedinfo='df -hT' - -# Alias's for archives -alias mktar='tar -cvf' -alias mkbz2='tar -cvjf' -alias mkgz='tar -cvzf' -alias untar='tar -xvf' -alias unbz2='tar -xvjf' -alias ungz='tar -xvzf' - # 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" @@ -328,47 +272,6 @@ pwdtail () pwd|awk -F/ '{nlast = NF -1;print $nlast"/"$NF}' } -# Show the current distribution -distribution () -{ - local dtype - # Assume unknown - dtype="unknown" - - # First test against Fedora / RHEL / CentOS / generic Redhat derivative - if [ -r /etc/rc.d/init.d/functions ]; then - source /etc/rc.d/init.d/functions - [ zz`type -t passed 2>/dev/null` == "zzfunction" ] && dtype="redhat" - - # Then test against SUSE (must be after Redhat, - # I've seen rc.status on Ubuntu I think? TODO: Recheck that) - elif [ -r /etc/rc.status ]; then - source /etc/rc.status - [ zz`type -t rc_reset 2>/dev/null` == "zzfunction" ] && dtype="suse" - - # Then test against Debian, Ubuntu and friends - elif [ -r /lib/lsb/init-functions ]; then - source /lib/lsb/init-functions - [ zz`type -t log_begin_msg 2>/dev/null` == "zzfunction" ] && dtype="debian" - - # Then test against Gentoo - elif [ -r /etc/init.d/functions.sh ]; then - source /etc/init.d/functions.sh - [ zz`type -t ebegin 2>/dev/null` == "zzfunction" ] && dtype="gentoo" - - # For Mandriva we currently just test if /etc/mandriva-release exists - # and isn't empty (TODO: Find a better way :) - elif [ -s /etc/mandriva-release ]; then - dtype="mandriva" - - # For Slackware we currently just test if /etc/slackware-version exists - elif [ -s /etc/slackware-version ]; then - dtype="slackware" - - fi - echo $dtype -} - # Show the current version of the operating system ver () { @@ -402,129 +305,6 @@ ver () fi } -# Automatically install the needed support files for this .bashrc file -install_bashrc_support () -{ - local dtype - dtype=$(distribution) - - if [ $dtype == "redhat" ]; then - sudo yum install multitail tree joe - elif [ $dtype == "suse" ]; then - sudo zypper install multitail - sudo zypper install tree - sudo zypper install joe - elif [ $dtype == "debian" ]; then - sudo apt-get install multitail tree joe - elif [ $dtype == "gentoo" ]; then - sudo emerge multitail - sudo emerge tree - sudo emerge joe - elif [ $dtype == "mandriva" ]; then - sudo urpmi multitail - sudo urpmi tree - sudo urpmi joe - elif [ $dtype == "slackware" ]; then - echo "No install support for Slackware" - else - echo "Unknown distribution" - fi -} - -# Show current network information -netinfo () -{ - echo "--------------- Network Information ---------------" - /sbin/ifconfig | awk /'inet addr/ {print $2}' - echo "" - /sbin/ifconfig | awk /'Bcast/ {print $3}' - echo "" - /sbin/ifconfig | awk /'inet addr/ {print $4}' - - /sbin/ifconfig | awk /'HWaddr/ {print $4,$5}' - echo "---------------------------------------------------" -} - -# IP address lookup -alias whatismyip="whatsmyip" -function whatsmyip () -{ - # Dumps a list of all IP addresses for every device - # /sbin/ifconfig |grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'; - - # Internal IP Lookup - echo -n "Internal IP: " ; /sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}' - - # External IP Lookup - echo -n "External IP: " ; wget http://smart-ip.net/myip -O - -q -} - -# View Apache logs -apachelog () -{ - if [ -f /etc/httpd/conf/httpd.conf ]; then - cd /var/log/httpd && ls -xAh && multitail --no-repeat -c -s 2 /var/log/httpd/*_log - else - cd /var/log/apache2 && ls -xAh && multitail --no-repeat -c -s 2 /var/log/apache2/*.log - fi -} - -# Edit the Apache configuration -apacheconfig () -{ - if [ -f /etc/httpd/conf/httpd.conf ]; then - sedit /etc/httpd/conf/httpd.conf - elif [ -f /etc/apache2/apache2.conf ]; then - sedit /etc/apache2/apache2.conf - else - echo "Error: Apache config file could not be found." - echo "Searching for possible locations:" - sudo updatedb && locate httpd.conf && locate apache2.conf - fi -} - -# Edit the PHP configuration file -phpconfig () -{ - if [ -f /etc/php.ini ]; then - sedit /etc/php.ini - elif [ -f /etc/php/php.ini ]; then - sedit /etc/php/php.ini - elif [ -f /etc/php5/php.ini ]; then - sedit /etc/php5/php.ini - elif [ -f /usr/bin/php5/bin/php.ini ]; then - sedit /usr/bin/php5/bin/php.ini - elif [ -f /etc/php5/apache2/php.ini ]; then - sedit /etc/php5/apache2/php.ini - else - echo "Error: php.ini file could not be found." - echo "Searching for possible locations:" - sudo updatedb && locate php.ini - fi -} - -# Edit the MySQL configuration file -mysqlconfig () -{ - if [ -f /etc/my.cnf ]; then - sedit /etc/my.cnf - elif [ -f /etc/mysql/my.cnf ]; then - sedit /etc/mysql/my.cnf - elif [ -f /usr/local/etc/my.cnf ]; then - sedit /usr/local/etc/my.cnf - elif [ -f /usr/bin/mysql/my.cnf ]; then - sedit /usr/bin/mysql/my.cnf - elif [ -f ~/my.cnf ]; then - sedit ~/my.cnf - elif [ -f ~/.my.cnf ]; then - sedit ~/.my.cnf - else - echo "Error: my.cnf file could not be found." - echo "Searching for possible locations:" - sudo updatedb && locate my.cnf - fi -} - # For some reason, rot13 pops up everywhere rot13 () { if [ $# -eq 0 ]; then