Goal: configure Jenkins to build a container
This demo follows this Docker tutorial , and these Singularity tutorials:
Also see the white paper Continuous Integration and Delivery for HPC.
To fix the "Permission denied while trying to connect to the Docker daemon socket" error when Jenkins is building the image, add Jenkins to the Docker user group, then restart the Jenkins service:
sudo usermod -a -G docker jenkins
I thought this StackOverflow post would be helpful, but it was not the solution.
The original Singularity project was adopted and rebranded by the Linux Foundatation as Apptainer , at which point the developers forked Singularity into SingularityCE at their company Sylabs (in addition to providing cloud-based add-on services).
I am not sure if SingularityCE- and Apptainer- definitions are cross-compatible.
The HPC I can access has Apptainer v1.1.8 (latest as of 5/15/2023) installed, so I will use the Apptainer specification .
Setting up a personal access token is needed to access private repositories. Jenkins will save this token and use it to authenticate itself to pull from those private repos. Since Jenkins is a CI tool for building software, I have granted Jenkins a read-only access token.