Singularity Containers on Apple M1 (ARM64)

Overview

Singularity Containers on Apple M1 (ARM64)

This is a repository containing a ready-to-use environment for singularity in arm64 (M1). It has been prepared specifically for the SKA SRC training on containers event and allows you the use of singularity containers with Apple's M1 architecture.

Install UTM for Apple M1

Click here: UTM for M1

Download it and then install it.

Download and unzip the pre-build UTM image ready to use

Click here to download this image.

This is an image created using Ubuntu 20.04 for ARM 64 Architecture.

After that, unzip the file downloaded (from 3GB to 6GB).

Import UTM image from the UTM application

Open UTM application, then click on the menu "File" and then "Import", select the image skatraining-singularity.utm.

Import image

Start the image

Click on the recently imported image and then click > to start.

After that you will see login screen.

Use the following credentials:

  • username: ska
  • passwoord: ska

Connect to the environmente using SSH

Connecting via SSH is a better option than directly using the shell that appears from the screen when starting the Virtual Machine.

To do that, open a Terminal in your host system and type the following:

ssh -p 22022 [email protected]

and you have to use the following credentials:

  • username: ska
  • passwoord: ska

Change keyboard layout

Because the image was built on my machine, in the installation I used my local keyboard layout, so to use your own keyboard layout (FR, DE, UK, ...), to do it you can type the following:

sudo dpkg-reconfigure keyboard-configuration

And then select your keyboard layout. Then you have to reboot the virtual machine by typing: sudo reboot

Building you own container on singularity for M1

Note you can use all Singularity and Docker containers from their Cloud Hubs, but there must be containers on the ARM64 architecture. Many of the containers are already ported to ARM64, but there are still many that have not been migrated to this new architecture.

Here we guide you through the process of creating your own container that will work perfectly for ARM64 architectures.

First, clone this repository:

git clone https://github.com/manuparra/singularitycontainers-on-m1-arm64.git

Then type:

cd singularitycontainers-on-m1-arm64

After that you can build an example container (see the code here ):

sudo singularity build lolcow.sif lolcow.def

After this process you will see a file named: lolcow.sif, now is time to run it:

singularity run lolcow.sif 

You will see the following:

 _________________________________________
/ Best of all is never to have been born. \
\ Second best is to die soon.             /
 -----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


The next step is to build a container that has more functionalities, in this case we are going to create a container that we can use later to improve it and create, for example our python code encapsulated in containers.

First, build the container (you can see how it is created from a definition file here):

sudo singularity build myplottingapp.sif myplottingapp.def 

After this process your container is ready to use by typing:

singularity run myplottingapp.sif testfile.png

Now, you can see a file named testfile.png.

-----------------------------------------------
SKA training: Git and Containers
Plot generated in testfile.png file.
-----------------------------------------------

Another way to interact with the container is to connect to the container and open a shell, for this, we can use the following:

singularity shell myplottingapp.sif

Then, if you want to go back to the host, type: exit

Acknowledgments

(Mateusz Malenta)[https://www.linkedin.com/in/mmalenta/?originalSubdomain=uk] and Alex Clarke

Owner
Manuel Parra
Researcher @CERN Large-scale data processing. Big-Data & Machine Learning Engineer. Software Architect & Developer. Ph.D. candidate #UGR
Manuel Parra
Change your Windows background with this program safely & easily!

Background_Changer Table of Contents: About the Program Features Requirements Preview Credits Reach Me See Also About the Program: You can change your

Sina.f 0 Jul 14, 2022
FCurve-Cleaner: Tries to clean your dense mocap graphs like an animator would

Tries to clean your dense mocap graphs like an animator would! So it will produce a usable artist friendly result while maintaining the original graph.

wiSHFul97 5 Aug 17, 2022
It really seems like Trump is trying to get his own social media started. Not a huge fan tbh.

FuckTruthSocial It really seems like Trump is trying to get his own social media started. Not a huge fan tbh. (When TruthSocial actually releases, I'l

0 Jul 18, 2022
A collection of software that serve no purpose other than waste your time. Forking is encouraged!

the-useless-collection A collection of software that serve no purpose other than waste your time. Forking is encouraged! Requires Python 3.9. Usage Go

Imsad2 1 Mar 16, 2022
Paprika is a python library that reduces boilerplate. Heavily inspired by Project Lombok.

Image courtesy of Anna Quaglia (Photographer) Paprika Paprika is a python library that reduces boilerplate. It is heavily inspired by Project Lombok.

Rayan Hatout 55 Dec 26, 2022
This is a small Panel applet for the Budgie Desktop to display the battery charge of a connected Bluetooth device.

BudgieBluetoothBattery This is a small Panel applet for the Budgie Desktop to display the battery charge of a connected Bluetooth device. It uses the

Konstantin Köhring 7 Dec 05, 2022
A code ecosystem that helps to find the equate any formula.

A code ecosystem that helps to find the equate any formula. The good part here is that the code finds the formula needed and/or operates on a formula (performs algebra) on it to give you an answer.

SubtleCoder 1 Nov 23, 2021
Modify the value and status of the records KoboToolbox

Modify the value and status of the records KoboToolbox (Modica el valor y status de los registros de KoboToolbox)

1 Oct 30, 2021
Calculatrix is a project where I'll create plenty of calculators in a lot of differents languages

Calculatrix What is Calculatrix ? Calculatrix is a project where I'll create plenty of calculators in a lot of differents languages. I know this sound

1 Jun 14, 2022
An implementation of multimap with per-item expiration backed up by Redis.

MultiMapWithTTL An implementation of multimap with per-item expiration backed up by Redis. Documentation: https://loggi.github.io/python-multimapwitht

Loggi 2 Jan 17, 2022
The last walk-through project in code institute diploma course

Welcome Rocky.C, This is the Code Institute student template for Gitpod. We have preinstalled all of the tools you need to get started. It's perfectly

Rocky.C 1 Jan 31, 2022
Coronavirus Tracker API

Coronavirus Tracker API Provides up-to-date data about Coronavirus outbreak. Includes numbers about confirmed cases, deaths and recovered. Support mul

Francisco Laguna 1 Oct 31, 2020
Project issue to website data transformation toolkit

braintransform Project issue to website data transformation toolkit. Introduction The purpose of these scripts is to be able to dynamically generate t

Brainhack 1 Nov 19, 2021
Laurence Billingham 1 Feb 16, 2022
python3 scrip for case conversion of source code files writen in fixed form fortran

convert_FORTRAN_case python3 scrip for case conversion of source code files writen in fixed form fortran python3 scrip for case conversion of source c

7 Sep 20, 2022
Code and data for learning to search in local branching

Code and data for learning to search in local branching

Defeng Liu 7 Dec 06, 2022
CountdownTimer - Countdown Timer For Python

Countdown Timer This python script asks for the user time (input) in seconds, an

Arinzechukwu Okoye 1 Jan 01, 2022
A simple script that can watch a list of directories for change and does some action

plot_watcher A simple script that can watch a list of directories and does some action when a specific kind of change happens In its current implement

Charaf Errachidi 12 Sep 10, 2021
Odoo. Open Source Apps To Grow Your Business.

Odoo Odoo is a suite of web based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Mana

Odoo 27.6k Jan 09, 2023
Python DSL for writing PDDL

PDDL in Python – Python DSL for writing a PDDL A minimal implementation of a DSL which allows people to write PDDL in python. Based on parsing python’

International Business Machines 21 Nov 22, 2022