Skip to content
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

WIP: Podman backend #806

Closed
wants to merge 7 commits into from
Closed

WIP: Podman backend #806

wants to merge 7 commits into from

Conversation

manics
Copy link
Member

@manics manics commented Oct 23, 2019

I had a go at implementing a Podman backend (Docker has mysteriously broken itself on my Fedora install)

Main issues:

  • There may be some bugs with hard-links (affects conda, needs to be fixed in the upstream podman project, but coming up with a minimal example for a bug report is tricky)
  • Travis VM is too old to run podman in user-mode (requires the fuse-overlayfs driver). The options are to use VFS (works but extremely inefficient) or run as root. On a modern OS such as Fedora 30 running Podman as a normal user with fuse-overlayfs should work.
  • The Podman Python client library uses the varlink interface which adds unnecessary complication since one of the aims of Podman is to run with minimal privileges and no daemon so I've written a wrapper library that executes podman
  • cache_from isn't implemented by podman

Todo:

  • Implement push_image
  • Implement volumes for podman run
  • Get rid of print/debug statements
  • Failing test: REPO_TYPE=stencila-py ENGINE=podman
  • Check whether Repo2Docker.find_image works
  • Refactor behind an Engine class

Closes #682

@betatim
Copy link
Member

betatim commented Oct 24, 2019

Neat! Have you thought about having a Engine class with an interface behind which we hide each engine? Was thinking that for two engines we can have if statements to select what to do but for more it would be nice to have something like the contents providers where repo2docker doesn't have to care which one is doing the work.

@manics
Copy link
Member Author

manics commented Oct 24, 2019

Definitely! This started as a "will it even work" mini project, now that it looks feasible I'll work on the design.

@yuvipanda
Copy link
Collaborator

This is awesome and I love it! <3

@manics
Copy link
Member Author

manics commented Feb 8, 2020

@yuvipanda Thanks! I haven't had much time to work on this recently, but I've upgraded to Fedora 31 which uses cgroups2 which Docker doesn't (yet) support... so I've only got Podman now.

@yuvipanda
Copy link
Collaborator

Ah, another casuality in the Leonard Pottering / Solomon Hykes war! Hope podman treats you well!

@manics
Copy link
Member Author

manics commented Feb 14, 2020

This has been replaced by:

@meeseeksmachine
Copy link

This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there:

https://discourse.jupyter.org/t/binderhub-for-hpc/143/18

@manics manics deleted the podman branch August 12, 2021 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Provide 'podman' as a build backend
4 participants