treasure-data / digdag

Workload Automation System
https://www.digdag.io/
Apache License 2.0
1.31k stars 222 forks source link

[feature requests] Support for Podman along with Docker #1267

Open thejeshgn opened 4 years ago

thejeshgn commented 4 years ago

Support for podman will be great. Podman has compatibility with Docker and works with docker images too. So I am guessing implementation in digdag should be straight forward.

What is Podman? Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Simply put: alias docker=podman.

hiroyuki-sato commented 4 years ago

Hello, @thejeshgn

I'm not familiar with Podman. But, I think some features are developing in v0_10 branch. Could you check this slide first?

@muga, @yoyama, Could you comment when you get a chance?

ehaupt commented 2 years ago

I would like to see this officially supported as podman can be run rootless. Since podman aims to be command compatible with docker this should technically work:

Global:

_export:
  docker:
    image: "someimage:latest"
    docker: "/usr/bin/podman"

Or as per-task:

+Example:
  docker:
    image: "someimage:latest"
    docker: "/usr/bin/podman"
  sh>: echo "I am running in a podman container"

Unfortunately that does not currently work very stable. I experience sporadic runtime failures even though the podman run does not fail.

I believe it has to do with the way docker (or in this case podman) is invoked here:

https://github.com/treasure-data/digdag/blob/011d848689ae3d31a8624d59bc8ece5c38e3ae5e/digdag-standards/src/main/java/io/digdag/standards/command/DockerCommandExecutor.java#L60-L79