Skip to content

Commit

Permalink
Merge pull request #397 from indigo-dc/devel3
Browse files Browse the repository at this point in the history
Devel3
  • Loading branch information
jorge-lip authored Jul 3, 2023
2 parents 4ce204b + 02bb51a commit 8436fd5
Show file tree
Hide file tree
Showing 39 changed files with 3,776 additions and 1,309 deletions.
2 changes: 2 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
* Docker <https://www.docker.com/>
* PRoot <https://proot-me.github.io/>
* Fakechroot <https://github.com/dex4er/fakechroot/wiki>
* Patchelf <https://github.com/NixOS/patchelf>
* runC <https://runc.io/>
* crun <https://github.com/containers/crun>
* Singularity <https://www.sylabs.io/>
Expand All @@ -12,6 +13,7 @@
* EOSC-hub <https://eosc-hub.eu>
* EGI-ACE <https://www.egi.eu/projects/egi-ace/>
* EOSC-Synergy <https://www.eosc-synergy.eu/>
* DT-Geo <https://dtgeo.eu/>
* LIP [https://www.lip.pt](https://www.lip.pt/?section=home&page=homepage&lang=en)
* INCD [https://www.incd.pt](https://www.incd.pt/?lang=en)

Expand Down
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
# Changelog

## udocker (1.3.10)

* improved handling of container platform information
* added support for QEMU on Pn modes enabling execution of containers
with architectures different than the host
* selection of executable for Sn mode now defaults to apptainer and
in second place to singularity
* the new command `manifest inspect` allows display of image manifests
therefore enabling access to the catalogue of platforms supported by
a given image
* the new command `tag` enables changing the name of an existing image
* new option `pull --platform=os/architecture` enables pulling of images
of a given architecture possibly different from the host
* new option `run --platform=os/architecture` enables pull and run of
images of a given architecture possibly different from the host
* new option `import --platform=os/architecture` enables to specify
an architecture for the image
* new option `ps -p` enables list of the architectures of containers
* new option `images -p` enables list of the architectures of containers
* the udocker tools support for Fn now includes Ubuntu 23:04, Fedora 38,
Alpine 3.17 and 3.18.
* experimental support for native Fn execution on arm64 for Fedora 36,
Fedora 37, Fedora 38, CentOS 7, AlmaLinux 8, AlmaLinux 9 and Ubuntu 22,
Ubuntu 20, Ubuntu 18 and similar.
* experimental support for native Fn execution on ppc64le for CentOS 7,
AlmaLinux 8, AlmaLinux 9, Ubuntu 22, Ubuntu 20, Ubuntu 18 and similar.
* experimental support for runc in arm64 and ppc64le
* updated version of Pn engines for x86, x86_64, arm64.

## udocker (1.3.9)

* add support to access non-config metadata from containers
Expand Down
20 changes: 17 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ but is still available
pull <repo/image:tag> :Pull container image from dockerhub
create <repo/image:tag> :Create container from a pulled image
run <container> :Execute container
run <repo/image:tag> :Pull, create and execute container
images -l :List container images
ps -m -s :List created containers
Expand All @@ -105,6 +106,7 @@ but is still available
clone <container_id> :Duplicate container
rm <container-id> :Delete container
rmi <repo/image:tag> :Delete image
tag <repo/image:tag> <repo2/image2:tag2> :Tag image
import <tar> <repo/image:tag> :Import tar file (exported by docker)
import - <repo/image:tag> :Import from stdin (exported by docker)
Expand All @@ -116,6 +118,7 @@ but is still available
inspect -p <repo/image:tag> :Return low level information on image
verify <repo/image:tag> :Verify a pulled or loaded image
manifest inspect <repo/image:tag> :Print manifest metadata
protect <repo/image:tag> :Protect repository
unprotect <repo/image:tag> :Unprotect repository
Expand Down Expand Up @@ -169,6 +172,14 @@ udocker pull quay.io/biocontainers/scikit-bio:0.2.3--np112py35_0
udocker images
```

Pull a different architecture such as arm64 instead of amd64.

```bash
udocker manifest inspect centos/centos8
udocker pull --platform=linux/arm64 centos/centos8
udocker tag centos/centos8 mycentos/centos8:arm64
```

Create a container from a pulled image, assign a name to the created
container and run it. A created container can be run multiple times
until it is explicitely removed.
Expand Down Expand Up @@ -419,6 +430,7 @@ of the installation manual.
* Docker <https://www.docker.com/>
* PRoot <https://proot-me.github.io/>
* Fakechroot <https://github.com/dex4er/fakechroot/wiki>
* Patchelf <https://github.com/NixOS/patchelf>
* runC <https://runc.io/>
* crun <https://github.com/containers/crun>
* Singularity <https://www.sylabs.io/>
Expand All @@ -428,14 +440,16 @@ of the installation manual.
* EOSC-hub <https://eosc-hub.eu>
* EGI-ACE <https://www.egi.eu/projects/egi-ace/>
* EOSC-Synergy <https://www.eosc-synergy.eu/>
* DT-Geo <https://dtgeo.eu/>
* LIP [https://www.lip.pt](https://www.lip.pt/?section=home&page=homepage&lang=en)
* INCD [https://www.incd.pt](https://www.incd.pt/?lang=en)

This work was performed in the framework of the H2020 project INDIGO-Datacloud
(RIA 653549) and further developed with co-funding by the projects EOSC-hub
(Horizon 2020) under Grant number 777536 and DEEP-Hybrid-DataCloud
(Horizon 2020) under Grant number 777435. Software Quality Assurance is
performed with the support of by the project EOSC-Synergy (Horizon 2020).
(Horizon 2020) under Grant number 777536, DEEP-Hybrid-DataCloud
(Horizon 2020) under Grant number 777435, DT-Geo (Horizon Europe) under Grant
number 101058129. Software Quality Assurance is performed with the support of
by the project EOSC-Synergy (Horizon 2020).
The authors wish to acknowleadge the support of INCD-Infraestrutura Nacional de
Computação Distribuída (funded by FCT, P2020, Lisboa2020, COMPETE and FEDER
under the project number 22153-01/SAICT/2016).
2 changes: 1 addition & 1 deletion codemeta.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"@type": "SoftwareSourceCode",
"identifier": "udocker",
"name": "udocker",
"version": "1.3.9",
"version": "1.3.10",
"description": "A basic user tool to execute simple docker containers in batch or interactive systems without root privileges",
"license": "Apache Software License 2.0, OSI Approved :: Apache Software License",
"author": [
Expand Down
36 changes: 26 additions & 10 deletions docs/installation_manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,18 @@ udocker requires:
Download a release tarball from <https://github.com/indigo-dc/udocker/releases>:

```bash
wget https://github.com/indigo-dc/udocker/releases/download/1.3.9/udocker-1.3.9.tar.gz
tar zxvf udocker-1.3.9.tar.gz
export PATH=`pwd`/udocker-1.3.9/udocker:$PATH
wget https://github.com/indigo-dc/udocker/releases/download/1.3.10/udocker-1.3.10.tar.gz
tar zxvf udocker-1.3.10.tar.gz
export PATH=`pwd`/udocker-1.3.10/udocker:$PATH
```

Alternatively use `curl` instead of `wget` as follows:

```bash
curl -L https://github.com/indigo-dc/udocker/releases/download/1.3.9/udocker-1.3.9.tar.gz \
> udocker-1.3.9.tar.gz
tar zxvf udocker-1.3.9.tar.gz
export PATH=`pwd`/udocker-1.3.9/udocker:$PATH
curl -L https://github.com/indigo-dc/udocker/releases/download/1.3.10/udocker-1.3.10.tar.gz \
> udocker-1.3.10.tar.gz
tar zxvf udocker-1.3.10.tar.gz
export PATH=`pwd`/udocker-1.3.10/udocker:$PATH
```

udocker executes containers using external tools and libraries that
Expand Down Expand Up @@ -345,8 +345,8 @@ The udocker tool should be installed as shown in section 2.1:

```bash
cd /sw
wget https://github.com/indigo-dc/udocker/releases/download/1.3.9/udocker-1.3.9.tar.gz
tar zxvf udocker-1.3.9.tar.gz
wget https://github.com/indigo-dc/udocker/releases/download/1.3.10/udocker-1.3.10.tar.gz
tar zxvf udocker-1.3.10.tar.gz
```

Directing users to the central udocker installation can be done using the
Expand Down Expand Up @@ -466,7 +466,23 @@ hosts that may share the common location. Therefore if the original
location pathname is `/sw/udocker/containers` then all hosts must
also mount it at the same exact path `/sw/udocker/containers`.

##### 7.3.1.3. Modes R2 and R3 restrictions
##### 7.3.1.3. Modes R1, R2 and R3 general restrictions

These modes make use of runc or crun and require that user namespaces
are enabled in the kernel. Older distributions may either not have
support for namespaces (e.g. CentOS 6) or may have the support for
user namespaces disabled at the system level (e.g. CentOS 7). More
recent releases of Linux distributions do have support for user
namespaces (e.g. CentOS 8 and CentOS 9).

For Centos 7 there are steps that system administrators may perform
to enable user namespaces, such as:

```bash
sudo echo "user.max_user_namespaces=10000" >> /etc/sysctl.conf
```

##### 7.3.1.4. Modes R2 and R3 specific restrictions

Central installation from readonly location using any of the R modes
requires udocker above v1.1.7.
Expand Down
Loading

0 comments on commit 8436fd5

Please sign in to comment.