Skip to content
Snippets Groups Projects
Commit d6cdab7b authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

Merge branch 'master' of eicweb.phy.anl.gov:containers/eic_container

parents af91225b 2fda7467
Branches
Tags
No related merge requests found
......@@ -6,7 +6,7 @@ stages:
- main
- singularity
builder_stable:
builder:stable:
stage: builder
tags:
- silicon
......@@ -19,7 +19,7 @@ builder_stable:
- head Dockerfile
- make login
- make release-cached
builder_unstable:
builder:unstable:
stage: builder
tags:
- silicon
......@@ -35,7 +35,7 @@ builder_unstable:
## I wish there were a simple way to transfer the "latest/unstable" strings
## between jobs...
config_stable:
config:stable:
image: eicweb.phy.anl.gov:4567/containers/eic_container/eic_builder:latest
stage: config
tags:
......@@ -44,6 +44,7 @@ config_stable:
- tags
- master
- staging
needs: ["builder:stable"]
script:
- bash containers/release/configure_release.sh
artifacts:
......@@ -51,7 +52,7 @@ config_stable:
- config/spack-env.sh
- config/eic-env.sh
- config/Dockerfile
config_unstable:
config:unstable:
image: eicweb.phy.anl.gov:4567/containers/eic_container/eic_builder:unstable
stage: config
tags:
......@@ -60,6 +61,7 @@ config_unstable:
- tags
- master
- staging
needs: ["builder:unstable"]
script:
- bash containers/release/configure_release.sh
artifacts:
......@@ -68,7 +70,7 @@ config_unstable:
- config/eic-env.sh
- config/Dockerfile
release_stable:
release:stable:
stage: main
tags:
- silicon
......@@ -76,13 +78,14 @@ release_stable:
- tags
- master
- staging
needs: ["config:stable"]
script:
- cp config/Dockerfile containers/release/Dockerfile
- cp config/eic-env.sh containers/release/eic-env.sh
- cd containers/release
- make login
- make release-cached
release_unstable:
release:unstable:
stage: main
tags:
- silicon
......@@ -90,6 +93,7 @@ release_unstable:
- tags
- master
- staging
needs: ["config:unstable"]
script:
- cp config/Dockerfile containers/release/Dockerfile
- cp config/eic-env.sh containers/release/eic-env.sh
......@@ -97,13 +101,14 @@ release_unstable:
- make login
- make develop-cached
builder_singularity:
builder:singularity:
stage: singularity
tags:
- singularity
only:
- staging
- tags
needs: ["builder:stable"]
when: manual
script:
- cp containers/builder/eic_builder.def .
......@@ -117,13 +122,14 @@ builder_singularity:
- build/eic_builder.sif
- build/eic_builder.def
release_singularity:
release:singularity:
stage: singularity
tags:
- singularity
only:
- staging
- tags
needs: ["release:stable"]
script:
- cp containers/release/eic.def .
- /bin/bash .gitlabci/setup.sh
......
......@@ -15,9 +15,9 @@ cd eic_container
modeuefile will be installed to `$PREFIX/../../etc/modulefiles`.
You can use the `-v` flag to select the version you want to deploy, or omit the
flag if you want to install the master build. The recommended stable
release version is `v2.1.3`.
release version is `v2.2.0`.
```bash
./deploy.py -v 2.1.3 <PREFIX>
./deploy.py -v 2.2.0 <PREFIX>
```
Available flags:
......@@ -101,15 +101,15 @@ $PREFIX/bin/eic-shell
Included software:
------------------
- Included software:
- gcc@9.3.0
- cmake@3.17.3
- gcc@10.2.0
- cmake@3.18.1
- fmt@6.1.2
- spdlog@1.5.0
- nlohmann-json
- heppdt@3.04.01
- clhep@2.4.1.3
- eigen@3.3.7
- python@3.7.7 with pip, numpy, pyyaml, pyafp, matplotlib, ipython, scipy
- python@3.7.8 with pip, numpy, pyyaml, pyafp, matplotlib, ipython, scipy
- xrootd@4.12.3
- root@6.22.00
- pythia8@8244
......@@ -117,8 +117,10 @@ Included software:
- podio@master
- geant4@10.6.2
- dd4hep@1.13.1
- acts@0.31.0
- acts@1.00.0
- gaudi@34.0
- dawn@3.91a
- dawncut@1.54a
- The singularity build exports the following applications:
- eic_shell: a development shell in the image
- container_dev: same as EIC shell
......
2.1.5
2.2.0
# 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:snapshot-20200922
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=20200908-testing \
SPACK_ROOT=/opt/spack \
DEBIAN_FRONTEND=noninteractive \
CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
container=docker
## install ghostview/ghostscript needed by some of the tools
RUN apt-get -yqq update \
&& apt-get -yqq install --no-install-recommends \
ghostscript \
gv \
&& rm -rf /var/lib/apt/lists/*
## 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 \
&& cd $SPACK_ROOT/np-spack \
&& git checkout snapshot-`echo $(spack --version) | cut -d- -f3` \
&& cd - \
&& echo "DISABLED: rm -rf $SPACK_ROOT/np-spack/.git" \
&& echo "repos:" > $SPACK_ROOT/etc/spack/repos.yaml \
&& echo " - $SPACK_ROOT/np-spack" >> $SPACK_ROOT/etc/spack/repos.yaml
......@@ -33,7 +41,7 @@ COPY spack.yaml /opt/spack-environment/spack.yaml
## as this is a raw builder image
RUN cd /opt/spack-environment \
&& spack env activate . \
&& spack install -j32 \
&& spack install -j64 \
&& spack clean -a
## Install additional python packages
......@@ -73,7 +81,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 []
......
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
- cairo+fc+ft+X+pdf+gobject
- 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
- podio@master
- geant4@10.6.2 cxxstd=17 +opengl +vecgeom +x11 +qt ^qt +opengl
- dd4hep@1.13.1 +geant4 +assimp +hepmc3
- acts@0.31.0 +dd4hep +digitization +identification +json +tgeo
- acts@1.00.0 +dd4hep +digitization +identification +json +tgeo
- gaudi@34.0
- dawn@3_91a
- dawncut@1_54a
concretization: together
config:
install_tree: /opt/software
......
......@@ -11,18 +11,18 @@ RUN find -L /usr/local/* -type f -exec readlink -f '{}' \; | \
grep 'x-executable\|x-archive\|x-sharedlib' | \
awk -F: '{print $1}' | xargs strip -s
FROM eicweb.phy.anl.gov:4567/containers/image_recipes/ubuntu_minimal:20.04
FROM eicweb.phy.anl.gov:4567/containers/image_recipes/debian_minimal:testing-20200908
LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \
name="eic_container" \
group="eic_container" \
name="eic" \
group="eic" \
march="native" \
basedist="ubuntu" \
base="ubuntu"
basedist="debian" \
base="debian"
## @ENV@ will be automatically expanded to auto-load the
## runtime environment
ENV DOCKERFILE_DISTRO=ubuntu \
DOCKERFILE_DISTRO_VERSION=20.04 \
DOCKERFILE_DISTRO_VERSION=20200908-testing \
DEBIAN_FRONTEND=noninteractive \
@ENV@
......@@ -31,6 +31,8 @@ ENV DOCKERFILE_DISTRO=ubuntu \
RUN apt-get -yqq update \
&& apt-get -yqq install --no-install-recommends \
openssh-client \
ghostscript \
gv \
&& locale-gen en_US.UTF-8 \
&& rm -rf /var/lib/apt/lists/*
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment