Skip to content
Snippets Groups Projects
Commit 6872f3d0 authored by Michael Blaschek's avatar Michael Blaschek :bicyclist:
Browse files

restructured repo, gitlab ci

parent 1939a97a
No related branches found
No related tags found
No related merge requests found
Showing
with 68 additions and 101 deletions
...@@ -3,19 +3,24 @@ image: ...@@ -3,19 +3,24 @@ image:
entrypoint: ["/bin/sh", "-c"] entrypoint: ["/bin/sh", "-c"]
variables: variables:
sfile: definition-files/almalinux/Singularity.base SFILE:
libarypath: almalinux:8-base description: "file path of Singularity recipe file"
value: definition-files/Singularity.almalinux.base
CONTAINERTAG:
description: "registry name and tag, e.g. almalinux8:base"
value: almalinux8:base
build: build:
when: manual when: manual
script: script:
- pwd - cd ./definition-files
- cp definition-files/runscript $PWD/ # step 1. build the container!
- cp definition-files/run-help $PWD/ - /bin/bash build.sh $SFILE
# step 1. build the container! # step 2. push to harbor
- /bin/bash .gitlabci/build.sh $sfile - singularity push $SFILE.sif oras://harbor.wolke.img.univie.ac.at/apptainer/$CONTAINERTAG
# step 2. push to harbor # might be too big at some point
- singularity push ${sfile}.sif oras://harbor.wolke.img.univie.ac.at/apptainer/${librarypath} artifacts:
artifacts: when: on_success
paths: expire_in: 1 day
- ${sfile}.sif paths:
- $SFILE.sif
# This is a makefile for building singularity containers
# from the definition files.
CONTAINER_DIR := containers
null :=
output:
@mkdir -p $(CONTAINER_DIR)
.PHONY: alma8.base # AlmaLinux 8 Base Image
alma8.base: output
@if [ ! -f '$(CONTAINER_DIR)/$@.sif' ]; then \
echo Building AlmaLinux 8 Base image: $(CONTAINER_DIR)/$@.sif;\
sudo singularity build $(CONTAINER_DIR)/$@.sif definition-files/almalinux/Singularity.base;\
fi
@[ -f $(CONTAINER_DIR)/$@.sif ] && echo Exists: $(CONTAINER_DIR)/$@.sif || true
.PHONY: alma8.met # AlmaLinux 8 Meteorology Image
alma8.met: output
@if [ ! -f $(CONTAINER_DIR)/$@.sif ]; then \
echo Building AlmaLinux 8 Met image: $(CONTAINER_DIR)/alma8.met.sif;\
sudo singularity build $(CONTAINER_DIR)/alma8.met.sif definition-files/almalinux/Singularity.met;\
fi
@[ -f $(CONTAINER_DIR)/$@.sif ] && echo Exists: $(CONTAINER_DIR)/$@.sif || true
.PHONY: alma8.met.ompi # AlmaLinux 8 Meteorology OMPI Image
alma8.met.ompi: output
@if [ ! -f $(CONTAINER_DIR)/$@.sif ]; then \
echo Building AlmaLinux 8 Met OMPI image: $(CONTAINER_DIR)/alma8.met.ompi.sif;\
sudo singularity build $(CONTAINER_DIR)/alma8.met.ompi.sif definition-files/almalinux/Singularity.met.ompi;\
fi
@[ -f $(CONTAINER_DIR)/$@.sif ] && echo Exists: $(CONTAINER_DIR)/$@.sif || true
.PHONY: help # Show make targets
help: # Show list of target
@echo Build Targets and helper functions:
@grep "^.PHONY: .* #" Makefile | sed 's/\.PHONY: \(.*\) # \(.*\)/\1 \t\2/' | expand -t20
.PHONY: clean # Remove all container images
clean:
rm -rf $(CONTAINER_DIR)/*.sif
\ No newline at end of file
# Singularity / Apptainer # Singularity / Apptainer
A repository of definition files for building [Singularity](https://sylabs.io/guides/latest/user-guide) containers around the software applications, frameworks, and libraries you need to run on high-performance computing systems. A repository of definition files for building [Singularity](https://apptainer.org/docs/user/main/introduction.html) containers around the software applications, frameworks, and libraries you need to run on high-performance computing systems.
Based on [naked-singularity](https://github.com/mkandes/naked-singularity). Thanks M. Kandas Based on [naked-singularity](https://github.com/mkandes/naked-singularity). Thanks M. Kandas
...@@ -8,31 +8,20 @@ Based on [naked-singularity](https://github.com/mkandes/naked-singularity). Than ...@@ -8,31 +8,20 @@ Based on [naked-singularity](https://github.com/mkandes/naked-singularity). Than
## Install Singularity / Apptainer ## Install Singularity / Apptainer
Install Singularity on your Linux desktop, laptop, or virtual machine. You need *root* permissions to use and install the package. Install Singularity/Apptainer on your Linux desktop, laptop, or virtual machine. You need *root* permissions to use and install the package. Although there is a unprivileged installation possible, [here](https://apptainer.org/docs/admin/main/installation.html#install-unprivileged-from-pre-built-binaries).
There is a general install script that installs version 3.5.3 (can be easily changed to 3.8 or 3.9) from source, but there are also binary packages build for modern OS (Server OS). Use the instructions from [apptainer](https://apptainer.org/docs/admin/main/installation.html)
e.g. Red Hat, Arch, ...
more informaiton on building from source can be found here: [Installing Singularity Documentation](https://sylabs.io/guides/3.6/admin-guide/installation.html#) ```sh title='Apptainer install instructions'
# Red Hat Based
```bash sudo yum install -y epel-release
# Centos / Red Hat sudo yum install -y apptainer
sudo yum update -y && \ # Ubuntu
sudo yum install -y epel-release && \ sudo add-apt-repository -y ppa:apptainer/ppa
sudo yum update -y && \ sudo apt update
sudo yum install -y singularity sudo apt install -y apptainer
# Arch / Manjaro
sudo pamac install singularity-container
# Manual using this script (builds from source)
sudo ./install-singularity.sh install
``` ```
e.g. Ubuntu does not have the package in the repos, but a deb file exists in the releases. See below.
Please note that these versions can vary substantially. Please check that at least version 3.5 is available or for newer distributions use **apptainer**.
### prebuild binary releases ### prebuild binary releases
If you can not find singularity or apptainer in your repos, there are prebuild packages available as well. Go to the github release [singularity](https://github.com/sylabs/singularity/releases) or [apptainer](https://github.com/apptainer/apptainer/releases) page. If you can not find singularity or apptainer in your repos, there are prebuild packages available as well. Go to the github release [singularity](https://github.com/sylabs/singularity/releases) or [apptainer](https://github.com/apptainer/apptainer/releases) page.
......
SFILES := $(wildcard Singularity.*)
%.sif:%
sudo singularity build $@ $<
$(addsuffix .sif, $(SFILES)): $(SFILES)
.PHONY: list
list:
@LC_ALL=C $(MAKE) -pRrq -f $(firstword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/(^|\n)# Files(\n|$$)/,/(^|\n)# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | grep -E -v -e '^[^[:alnum:]]' -e '^$@$$'
clean:
rm -f *.sif
\ No newline at end of file
...@@ -5,8 +5,8 @@ From: almalinux:8 ...@@ -5,8 +5,8 @@ From: almalinux:8
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
# command prompt name # command prompt name
......
...@@ -5,8 +5,8 @@ From: almalinux:8 ...@@ -5,8 +5,8 @@ From: almalinux:8
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
dnf update -y \ dnf update -y \
......
...@@ -5,8 +5,8 @@ From: almalinux:8 ...@@ -5,8 +5,8 @@ From: almalinux:8
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
# Every line will be a layer in the container # Every line will be a layer in the container
......
...@@ -5,8 +5,8 @@ From: almalinux:8 ...@@ -5,8 +5,8 @@ From: almalinux:8
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
# Every line will be a layer in the container # Every line will be a layer in the container
......
...@@ -75,7 +75,7 @@ From: almalinux:8 ...@@ -75,7 +75,7 @@ From: almalinux:8
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
%runscript %runscript
# Need spack entry point to allow spack builds # Need spack entry point to allow spack builds
exec /bin/bash /opt/spack/share/spack/docker/entrypoint.bash interactive-shell "$@" exec /bin/bash /opt/spack/share/spack/docker/entrypoint.bash interactive-shell "$@"
%startscript %startscript
......
...@@ -5,8 +5,8 @@ From: alpine ...@@ -5,8 +5,8 @@ From: alpine
MAINTAINER Michael Blaschek <michael.blaschek@univie.ac.at> MAINTAINER Michael Blaschek <michael.blaschek@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
apk add --no-cache build-base \ apk add --no-cache build-base \
......
...@@ -5,8 +5,8 @@ From: texlive/texlive:latest ...@@ -5,8 +5,8 @@ From: texlive/texlive:latest
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
# command prompt name # command prompt name
......
...@@ -5,8 +5,8 @@ From: mambaorg/micromamba:latest ...@@ -5,8 +5,8 @@ From: mambaorg/micromamba:latest
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
apt -y update && apt -y install \ apt -y update && apt -y install \
......
...@@ -7,8 +7,8 @@ From: mambaorg/micromamba:latest ...@@ -7,8 +7,8 @@ From: mambaorg/micromamba:latest
eccodes 2.27.0 eccodes 2.27.0
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
micromamba -q install -y -n base -c conda-forge eccodes=2.27.0 python=3.9.13 && micromamba -q install -y -n base -c conda-forge eccodes=2.27.0 python=3.9.13 &&
......
...@@ -5,8 +5,8 @@ From: mambaorg/micromamba:latest ...@@ -5,8 +5,8 @@ From: mambaorg/micromamba:latest
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%apprun install-ipykernel %apprun install-ipykernel
# install current container as kernel # install current container as kernel
......
...@@ -5,8 +5,8 @@ From: mambaorg/micromamba:latest ...@@ -5,8 +5,8 @@ From: mambaorg/micromamba:latest
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%apprun mpitest %apprun mpitest
...@@ -18,7 +18,7 @@ From: mambaorg/micromamba:latest ...@@ -18,7 +18,7 @@ From: mambaorg/micromamba:latest
exec mpirun -np $nproc mpitest.x exec mpirun -np $nproc mpitest.x
%appfiles mpitest %appfiles mpitest
./definition-files/MPI/mpitest.c ./mpitest.c ./src/mpitest.c ./mpitest.c
%appinstall mpitest %appinstall mpitest
export PATH=/opt/conda/bin:$PATH export PATH=/opt/conda/bin:$PATH
......
...@@ -5,8 +5,8 @@ From: ubuntu:18.04 ...@@ -5,8 +5,8 @@ From: ubuntu:18.04
maintainer IT-IMGW <it.img-wien@univie.ac.at> maintainer IT-IMGW <it.img-wien@univie.ac.at>
%files %files
$PWD/definition-files/runscript /.singularity.d/runscript ./runscript /.singularity.d/runscript
$PWD/definition-files/run-help /.singularity.d/runscript.help ./run-help /.singularity.d/runscript.help
%post %post
# command prompt name # command prompt name
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment