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
This is a Python 3.10 port of mock, a library for manipulating human-readable message strings.

This is a Python 3.10 port of mock, a library for manipulating human-readable message strings.

Alexander Bartolomey 1 Dec 31, 2021
Pykeeb - A small Python script that prints out currently connected keyboards

pykeeb 🐍 ⌨️ A small Python script that detects and prints out currently connect

Jordan Duabe 1 May 08, 2022
A python tool used for hacking WhatsApp by diverting otp

W-HACK A python tool used for hacking WhatsApp by diverting otp You can hack WhatsApp easily with this tool Note:OTP expires after 5 seconds HOW TO IN

Spider Anongreyhat 3 Oct 17, 2021
Lookup for interesting stuff in SMB shares

SMBSR - what is that? Well, SMBSR is a python script which given a CIDR/IP/IP_file/HOSTNAME(s) enumerates all the SMB services listening (445) among t

Vincenzo 112 Dec 15, 2022
A compilation of useful scripts to automate common tasks

Scripts-To-Automate-This A compilation of useful scripts for common tasks Name What it does Type Add file extensions Adds ".png" to a list of file nam

0 Nov 05, 2021
A simple website-based resource monitor for slurm system.

Slurm Web A simple website-based resource monitor for slurm system. Screenshot Required python packages flask, colored, humanize, humanfriendly, beart

Tengda Han 17 Nov 29, 2022
Scrapper For Paste.pics

PrntScScrapper Scrapper for Paste.pics If you are bored you can find some random screenshots from prnt.sc Features Saving screenshots Open in Browser

Fareusz 1 Dec 29, 2021
Patch PL to disable LK verification. Patch LK to disable boot/recovery verification.

Simple Python(3) script to disable LK verification in Amazon Preloader images and boot/recovery image verification in Amazon LK ("Little Kernel") images.

Roger Ortiz 18 Mar 17, 2022
Timetable scripts for python

Timetable Scripts timetable_to_json: https://beta.elektronplus.pl/timetable classes_taught_by_teacher: a.adam (aa) ['1Tc', '1Td', '3Te', '3Ti', '4Tf',

Elektron++ 2 Jan 02, 2022
Store Simulation

Almacenes Para clonar el Repositorio: Vaya a la terminal de Linux o Mac, o a la cmd en Windows y ejecute:

Johan Posada 1 Nov 12, 2021
All exercises done during the Python 3 course in the Video Course (World 1, 2 and 3)

Python3-cursoemvideo-exercises - All exercises done during the Python 3 course in the Video Course (World 1, 2 and 3)

Renan Barbosa 3 Jan 17, 2022
SpellingBeeSolver - This program generates solutions to NYT style spelling bee problems.

SpellingBeeSolver This program generates solutions to NYT style spelling bee problems. The initial version of this program is being written in Python

1 Jan 01, 2022
Blender 3.0 Python - Open temporary areas in the Text Editor

PopDrawers When editing text in Blender, it can be handy to have areas like Info, Console, Outliner, etc visible on screen to help with scripting. How

SpectralVectors 7 Nov 16, 2022
A pomodoro app written in Python

Pomodoro It's a pomodoro app written in Python. You can minimize it while you're working if you want to, it'll pop up on your screen when the timer is

Yiğit 1 Dec 20, 2021
UUID_ApiGenerator - This an API that will return a key-value pair of randomly generated UUID

This an API that will return a key-value pair of randomly generated UUID. Key will be a timestamp and value will be UUID. While the

1 Jan 28, 2022
Interactivity Lab: Household Pulse Explorable

Interactivity Lab: Household Pulse Explorable Goal: Build an interactive application that incorporates fundamental Streamlit components to offer a cur

1 Feb 10, 2022
A simple way to read and write LAPS passwords from linux.

A simple way to read and write LAPS passwords from linux. This script is a python setter/getter for property ms-Mcs-AdmPwd used by LAPS inspired by @s

Podalirius 36 Dec 09, 2022
simple password manager.

simple password manager.

1 Nov 18, 2021
Small pip update helpers.

pipdate pipdate is a collection of small pip update helpers. The command pipdate # or python3.9 -m pipdate updates all your pip-installed packages. (O

Nico Schlömer 69 Dec 18, 2022
Open source style Deep Dream project

DeepDream ⚠️ If you don't have a gpu with cuda, the style transfer execution time will be much longer Prerequisites Python =3.8.10 How to Install sud

Patrick martins de lima 7 May 17, 2022