Skip to content

feat: experimental podman support #227

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

tristan-f-r
Copy link
Collaborator

no formal test cases yet.

Closes #124

@@ -5,9 +5,10 @@ hash_length: 7

# Specify the container framework used by each PRM wrapper. Valid options include:
# - docker (default if not specified)
# - podman - rootless version of docker, which should be a simple swap - if any algorithm doesn't work with podman, that is a bug.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it a bug with SPRAS or with the algorithm itself?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Honestly, I don't expect that error to ever pop up, as the compatibility layer that Podman supplies is really robust)

This would usually be a problem with the algorithm, if it does use some weird quirk only available on docker, but I am unaware of any existing.

# - singularity -- Also known as apptainer, useful in HPC/HTC environments where docker isn't allowed
# - dsub -- experimental with limited support, used for running on Google Cloud
container_framework: docker
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change back to docker

@@ -5,6 +5,7 @@ dependencies:
- adjusttext=0.7.3.1
- bioconda::snakemake-minimal=8.17.0
- docker-py=5.0
- podman=5.4.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this also be 5.4.0.1?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran into an issue when I pinned it to 5.4.0.1 and ignored it - I could look more into it, though I'll circle back to this PR since I figured out what was blocking me in the NetMix2 integration.

@@ -239,6 +242,40 @@ def run_container_docker(container: str, command: List[str], volumes: List[Tuple
# finally:
return out

# TODO any issue with creating a new client each time inside this function?
def run_container_podman(container: str, command: List[str], volumes: List[Tuple[PurePath, PurePath]], working_dir: str, environment: str = 'SPRAS=True'):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To test the Podman functionality, a test case should be added to each algorithm test (similar to the singularity test cases).

@tristan-f-r tristan-f-r added the infrastructure misc. changes made to SPRAS itself label May 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure misc. changes made to SPRAS itself
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Run SPRAS with Podman instead of Docker?
2 participants