Skip to content

Automated Workflows

Anderson Chauphan edited this page May 9, 2024 · 4 revisions

This page will mainly contain information about using Trilinos' provided containers with Automated Workflow systems like GitHub Actions.

Container Engines

Before diving further, it should be noted that throughout other container documentation pages in this wiki, container engines like Podman and Docker are used interchangeably when it comes to the commands and argument names used. This is a design decision by those container engines to help users more easily get started with their containers.

When it comes to differences between container engines, those differences are usually within the architecture of the engines themselves. For a more detailed explanation on the architectures between container engines like Docker and Podman, you can read this blog here.

In most automated workflows that will require a container, the machines that the workflows run on will likely utilize a container engine like Podman over Docker due to its daemonless architecture which allows the engine to be more secure and accessible and for its ability to run rootless containers.

Launching rootless containers via an automated workflow system like GitHub Actions helps add another layer of security between the container and the host machine should the container ever be compromised as the attacker will not gain root permissions on the host machine.

Using Trilinos containers in an automated workflow

With Trilinos provided containers, root is the default user, however, included is a rootless user named runner.

NOTE: Depending on the container orchestration tool or how the Trilinos container will be launched in your automated workflow, this runner user will need to be specified in order to have the container launch with a rootless user.

Example of launching the rootless container with Podman via CLI:

podman run --rm --user=runner <some_image_here>
Clone this wiki locally