dapr / cli

Command-line tools for Dapr.
Apache License 2.0
315 stars 198 forks source link

consider supporting `nerdctl`+`containerd`? #1232

Open tianyax opened 1 year ago

tianyax commented 1 year ago

Describe the proposal

My development environment uses nerdctl+containerd instead of docker, which makes dapr cli not work on my environment. Will containerd be added as a container runtime? I'd love to try and contribute a PR if this is possible.

daprcli

Release Note

RELEASE NOTE:

pravinpushkar commented 1 year ago

@tianyax Sure, feel free to send a PR. @mukundansundar @yaron2 any thoughts on this proposal ?

mukundansundar commented 1 year ago

@tianyax Please feel free to contribute a PR for this feature.

mukundansundar commented 1 year ago

@tianyax If you are working on this please comment /assign on this issue

tianyax commented 1 year ago

/assign

mukundansundar commented 1 year ago

@tianyax There are a some questions that I have ...

These questions would help clarify adding support and documentation in the dapr CLI.

tianyax commented 1 year ago

@tianyax There are a some questions that I have ...

  • Does nerdctl support all commands that docker supports?
  • Is there a plan to maintain compatibility with docker command similar to podman?
  • Is there a nerdctl go library available that can be used instead of the command directly? And if so can that be used for nerdctl?
  • Is is there windows support for containerd and nerdctl?
  • What sort of documentation and support is needed for nerdctl when used with dapr?

These questions would help clarify adding support and documentation in the dapr CLI.

@mukundansundar For 1,2,5: nerdctl is a Docker-compatible containerd CLI, and as far as I know it will always be compatible, the community is active (maybe I'll contribute a PR fix if there are some incompatibilities), many users often use alias docker=nerdctl for a consistent experience with docker, so we probably don't need additional documentation(some environment variables may be excluded). For 4: nerdctl and containerd are supported by windows, but I haven’t actually used it. I need to verify the integrity of the function on windows,but macos does not support containerd and nerdctl. For 3: nerdctl go library? I don't see this at the moment, maybe we can use the nerdctl project directly. If the function is simple, is it better to reduce the import of packages?

tianyax commented 1 year ago

@mukundansundar Sorry, the --network-alias parameter is not supported when nerdctl run the container, I will try to fix it, this feature may need to be delayed..

pravinpushkar commented 1 year ago

@tianyax Is it possible to use containerd with https://github.com/abiosoft/colima or with Rancher desktop on Macos ?

tianyax commented 1 year ago

@tianyax Is it possible to use containerd with https://github.com/abiosoft/colima or with Rancher desktop on Macos ?

@pravinpushkar colima and rancher-desktop both use lima, which implements containerd support on mac by starting a qemu vm and using the containerd runtime inside it. which makes me think it's not a supported runtime on the mac itself, so I filtered it out. But this should be supported, I will test it later.

dapr-bot commented 1 year ago

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue, help wanted or triaged/resolved) or other activity occurs. Thank you for your contributions.