Apptainer for HPC
설치
사전 요구 사항
sudo yum update -y \
&& sudo yum groupinstall -y 'Development Tools' \
&& sudo yum install -y \
openssl-devel \
libuuid-devel \
libseccomp-devel \
wget \
squashfs-tools \
cryptsetup
or
sudo apt-get update -y \
&& sudo apt-get install -y \
build-essential \
uuid-dev \
libgpgme-dev \
squashfs-tools \
libseccomp-dev \
wget \
pkg-config \
git \
cryptsetup-bin
Golang is required to build the apptainer.
Apptainer
export APPTAINER_VERSION=1.0.1
sudo mkdir -p /opt/apptainer/$APPTAINER_VERSION
git clone https://github.com/apptainer/apptainer.git -b v$APPTAINER_VERSION --depth 1 \
&& cd apptainer
./mconfig --prefix=/opt/apptainer/$APPTAINER_VERSION \
&& make -C builddir \
&& sudo make -C builddir install
정보
--without-suid 옵션을 사용하여 설치하면 setuid 권한이 처음부터 없는 대신 /opt/apptainer/$APPTAINER_VERSION 폴더 전체를 다른 곳으로 옮기더라도 실행에 문제가 없습니다. libexec/apptainer/bin/starter-suid가 setuid 관련 파일입니다.
./mconfig --help
export PATH=/opt/apptainer/$APPTAINER_VERSION/bin:$PATH
경고
가능하면 컴퓨트 노드의 로컬 디스크에 설치하는 것이 좋으나 네트워크 위치에 설치되는 경우 --localstatedir 옵션을 통해 컨테이너 실행시 필요한 루트 파일 시스템, 오버레이, 바인딩 마운트 등으로 사용될 수 있는 로컬 스토리지를 잡아주는 것이 좋습니다.