# Community Guide: Setting up devpod with podman

**URL:** <https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320>\
**Category:** General\
**Tags:** developer-experience\
**Created:** [December 25, 2023, 6:21pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320 "2023-12-25T18:21:11Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![zartarr88](https://avatars.discourse-cdn.com/v4/letter/z/eb9ed0/32.png) [@zartarr88](https://universal-blue.discourse.group/u/zartarr88)\
**Post date:** [December 25, 2023, 6:21pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/1 "2023-12-25T18:21:11Z")

</div>

Hoping these posts serve as a useful spot for newcomers and the community to help fill up to support the devs and an easy spot to curate and merge into the documentation.

Bluefin defaults to podman which is an excellent sensible default - podman - (rootless, best practice). However, little documentation or sharing of how to get started. I don’t know how to setup devpod to make use of podman. Help around that would be appreciated.

1. Under settings, add CLI to path button doesn’t work. Steps to perform this ?
2. Under providers, what to pick and fill in to make use of podman

---

<div class="post-metadata">

**Author:** ![j0rge](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/j0rge/32/8_2.png) [@j0rge](https://universal-blue.discourse.group/u/j0rge)\
**Post date:** [December 25, 2023, 6:50pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/2 "2023-12-25T18:50:15Z")

</div>

There doesn’t appear to be a podman provider, just a docker one:

> **[Add a Provider | DevPod docs | DevContainers everywhere](https://devpod.sh/docs/managing-providers/add-provider)**
>
> The DevPod team maintains providers for popular services such as:

At the bottom of that page it appears it looks like adding providers to it should be straightforward. I suspect figuring out how to lie to devpod to make it think it’s talking to docker might also work?

---

<div class="post-metadata">

**Author:** ![zartarr88](https://avatars.discourse-cdn.com/v4/letter/z/eb9ed0/32.png) [@zartarr88](https://universal-blue.discourse.group/u/zartarr88)\
**Post date:** [December 25, 2023, 7:01pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/3 "2023-12-25T19:01:55Z")

</div>

Devpod works with docker seamlessly.

Step 1:  
`just docker`

Step 2:  
Connect devpod to docker

I was just curious if people were using it with podman.

One issue I’m having on bluefin however is that the ‘add to CLI’ button in devpod doesn’t work.

I’ve been using this machine for mainly data science , but since we are on break I’ve been working on trying to make it my daily driver as a simple non-developer user and just learn. I would attach a screenshot , but that’s another aspect I’m researching right now. When I install flameshot via flathub and try and take a screenshot , I just get an error saying unable to capture screen. Will have this resolve hopefully today and post instructions.

---

<div class="post-metadata">

**Author:** ![zartarr88](https://avatars.discourse-cdn.com/v4/letter/z/eb9ed0/32.png) [@zartarr88](https://universal-blue.discourse.group/u/zartarr88)\
**Post date:** [December 27, 2023, 9:32pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/4 "2023-12-27T21:32:22Z")

</div>

So I somewhat figured this out .

under Docker Host put: unix:///var/run/user/1000/podman/podman.sock  
under Docker path put: podman

---

<div class="post-metadata">

**Author:** ![Bambiraptor](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/bambiraptor/32/333_2.png) [@Bambiraptor](https://universal-blue.discourse.group/u/Bambiraptor)\
**Post date:** [January 25, 2024, 3:05am UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/5 "2024-01-25T03:05:54Z")

</div>

Great thread @zartarr88  
yes! same problem with flameshot! did you solve it?

---

<div class="post-metadata">

**Author:** ![Bambiraptor](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/bambiraptor/32/333_2.png) [@Bambiraptor](https://universal-blue.discourse.group/u/Bambiraptor)\
**Post date:** [January 25, 2024, 3:08am UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/6 "2024-01-25T03:08:01Z")

</div>

Is this a viable solution? what do you mean by somewhat? 🙂

---

<div class="post-metadata">

**Author:** ![zartarr88](https://avatars.discourse-cdn.com/v4/letter/z/eb9ed0/32.png) [@zartarr88](https://universal-blue.discourse.group/u/zartarr88)\
**Post date:** [May 11, 2024, 6:37pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/7 "2024-05-11T18:37:22Z")

</div>

It was working a couple months ago , after a couple updates it stopped but they introduced a ujust docker command . and I’ve just defaulted to docker for devpod.

---

<div class="post-metadata">

**Author:** ![mel226](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/mel226/32/1577_2.png) [@mel226](https://universal-blue.discourse.group/u/mel226)\
**Post date:** [May 14, 2024, 9:37am UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/8 "2024-05-14T09:37:55Z")

</div>

Hi there, are you still having issues with Flatpak Flameshot? If yes this might help:

1. Install Flameshot from Flathub
2. Give Flameshot screenshot permissions: `flatpak permission-set screenshot screenshot org.flameshot.Flameshot yes`
3. Bind shortcut via Settings: `flatpak run --command=flameshot -u org.flameshot.Flameshot gui`

---

<div class="post-metadata">

**Author:** ![Bambiraptor](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/bambiraptor/32/333_2.png) [@Bambiraptor](https://universal-blue.discourse.group/u/Bambiraptor)\
**Post date:** [May 15, 2024, 2:00pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/9 "2024-05-15T14:00:56Z")

</div>

hi @mel226, thanks for checking in!

After having installed flameshot from flathub and run the first line: `flatpak permission-set screenshot screenshot org.flameshot.Flameshot yes`

when I run the second line `flatpak run --command=flameshot -u org.flameshot.Flameshot gui`

I’m getting this error:  
`error: app/org.flameshot.Flameshot/x86_64/stable not installed`

---

<div class="post-metadata">

**Author:** ![mel226](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/mel226/32/1577_2.png) [@mel226](https://universal-blue.discourse.group/u/mel226)\
**Post date:** [May 15, 2024, 2:23pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/10 "2024-05-15T14:23:38Z")

</div>

Try removing `-u` in the command - my Flameshot install is on user level and not like Bluefin’s default system level Flatpak, completely forgot about that! If after this Flameshot runs, you can bind the command via Gnome Settings to a certain key combo, e.g. Super+Shift+S

---

<div class="post-metadata">

**Author:** ![Bambiraptor](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/bambiraptor/32/333_2.png) [@Bambiraptor](https://universal-blue.discourse.group/u/Bambiraptor)\
**Post date:** [May 15, 2024, 3:11pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/11 "2024-05-15T15:11:27Z")

</div>

ok great,  
what should I have for the command?

 ![image](https://global.discourse-cdn.com/free1/uploads/univeral_blue/original/2X/b/bdf58fd3bacad522993d4eb879f4ca8b93c43af6.png)

---

<div class="post-metadata">

**Author:** ![mel226](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/mel226/32/1577_2.png) [@mel226](https://universal-blue.discourse.group/u/mel226)\
**Post date:** [May 15, 2024, 4:17pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/12 "2024-05-15T16:17:01Z")

</div>

`flatpak run --command=flameshot org.flameshot.Flameshot gui`

---

<div class="post-metadata">

**Author:** ![Bambiraptor](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/bambiraptor/32/333_2.png) [@Bambiraptor](https://universal-blue.discourse.group/u/Bambiraptor)\
**Post date:** [May 15, 2024, 6:05pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/13 "2024-05-15T18:05:37Z")

</div>

Thanks a lot @mel226 ! It’s working perfectly now, pretty sweet!  
I love Flameshot  
have a good one

---

<div class="post-metadata">

**Author:** ![phreed](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/phreed/32/2417_2.png) [@phreed](https://universal-blue.discourse.group/u/phreed)\
**Post date:** [August 15, 2024, 3:18am UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/14 "2024-08-15T03:18:24Z")

</div>

I know this is old but I am working on a [GitHub - babeloff/devpod-provider-podman: A Podman provider for devpod](https://github.com/babeloff/devpod-provider-podman)  
Currently, it can be used as follows:

```auto
devpod provider add https://raw.githubusercontent.com/babeloff/devpod-provider-podman/main/provider.yml

```

Eventually, it should work as follows:

```auto
devpod provider add babeloff/devpod-provider-podman

```

---

<div class="post-metadata">

**Author:** ![j0rge](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/j0rge/32/8_2.png) [@j0rge](https://universal-blue.discourse.group/u/j0rge)\
**Post date:** [August 15, 2024, 5:10am UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/15 "2024-08-15T05:10:16Z")

</div>

Oh wow this is way cool!

---

<div class="post-metadata">

**Author:** ![akarypid](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@akarypid](https://universal-blue.discourse.group/u/akarypid)\
**Post date:** [September 23, 2024, 10:18pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/17 "2024-09-23T22:18:13Z")

</div>

Hello @phreed

I added your provider successfully, then tried to create a workspace with it and this folder:

```auto
> cat $HOME/devpod/test-ws/.devcontainer.json
{"image":"registry.fedoraproject.org/fedora-toolbox:40"}

```

Unfortunately it gives me an error after creating the container (I see `container up` in the logs) when building the workspace. The logs end with:

```auto
...
{"type":"data","data":{"time":"2024-09-23T23:05:37.821535361+01:00","message":"devcontainer up","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821538067+01:00","message":"github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).Run","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821541973+01:00","message":"/home/runner/work/devpod/devpod/cmd/agent/workspace/up.go:95","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821545524+01:00","message":"github.com/loft-sh/devpod/cmd/agent/workspace.NewUpCmd.func1","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821549024+01:00","message":"/home/runner/work/devpod/devpod/cmd/agent/workspace/up.go:51","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.82155219+01:00","message":"github.com/spf13/cobra.(*Command).execute","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821555702+01:00","message":"/home/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:983","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.82155929+01:00","message":"github.com/spf13/cobra.(*Command).ExecuteC","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821563225+01:00","message":"/home/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1115","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821566756+01:00","message":"github.com/spf13/cobra.(*Command).Execute","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821569588+01:00","message":"/home/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1039","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821573062+01:00","message":"github.com/loft-sh/devpod/cmd.Execute","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821575855+01:00","message":"/home/runner/work/devpod/devpod/cmd/root.go:90","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821578779+01:00","message":"main.main","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821581186+01:00","message":"/home/runner/work/devpod/devpod/main.go:6","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821584048+01:00","message":"runtime.main","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821586339+01:00","message":"/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.5.linux-amd64/src/runtime/proc.go:271","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.82159024+01:00","message":"runtime.goexit","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.821592597+01:00","message":"/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.5.linux-amd64/src/runtime/asm_amd64.s:1695","level":"info"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.82524296+01:00","message":"Connection to SSH Server closed","level":"debug"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.82527146+01:00","message":"Done creating devcontainer","level":"debug"}}
{"type":"data","data":{"time":"2024-09-23T23:05:37.8287052+01:00","message":"Done executing ssh server helper command","level":"debug"}}
{"type":"error","error":{"time":"2024-09-23T23:05:37.945389294+01:00","message":"Process exited with status 1\nrun agent command\ngithub.com/loft-sh/devpod/pkg/devcontainer/sshtunnel.ExecuteCommand.func2\n\t/home/runner/work/devpod/devpod/pkg/devcontainer/sshtunnel/sshtunnel.go:129\nruntime.goexit\n\t/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.5.linux-amd64/src/runtime/asm_amd64.s:1695","level":"fatal"}}

```

Interestingly, the container is up and running, but I cannot enter it:

```auto
> toolbox list -c
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
751041fd7fbf wonderful_merkle 5 minutes ago running registry.fedoraproject.org/fedora-toolbox:40

> toolbox enter wonderful_merkle
Error: container wonderful_merkle is too old and no longer supported 
Recreate it with Toolbox version 0.0.17 or newer.

```

How is this possible?

---

<div class="post-metadata">

**Author:** ![phreed](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/phreed/32/2417_2.png) [@phreed](https://universal-blue.discourse.group/u/phreed)\
**Post date:** [September 24, 2024, 1:36pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/18 "2024-09-24T13:36:40Z")

</div>

Not sure, I will give it a look.

---

<div class="post-metadata">

**Author:** ![phreed](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/phreed/32/2417_2.png) [@phreed](https://universal-blue.discourse.group/u/phreed)\
**Post date:** [September 26, 2024, 7:55pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/19 "2024-09-26T19:55:29Z")

</div>

I made a bunch of updates.  
Could you give it another try?  
`devpod provider add babeloff/devpod-provider-podman --debug`

---

<div class="post-metadata">

**Author:** ![akarypid](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@akarypid](https://universal-blue.discourse.group/u/akarypid)\
**Post date:** [September 27, 2024, 7:35am UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/20 "2024-09-27T07:35:45Z")

</div>

Hello, I was trying this last night and figured it out. I had the wrong impression that dev containers work with any image, but it seems that they require specific images that have some “dev container support” pre-installed.

Above, I used a toolbox image from fedora registry and it seems that the “error” occurs because devpod tries to talk to “devcontainer services” when the container is brought up and fails (because they are missing).

I think you simply need a “compatible image” and indeed this spec works:

```auto
> cat .devcontainer.json 
{"image":"mcr.microsoft.com/devcontainers/python:dev-3.12"}

```

Having said that, I have installed your new provider with:

```auto
> devpod-cli provider add babeloff/devpod-provider-podman --debug

```

Repeating the above has same results (fails with Fedora image, works with Microsoft image) which I now believe is expected.

So likely this was simply my mistake.

Does anyone know what you need to install in an image to make it “dev container compatible”?

---

<div class="post-metadata">

**Author:** ![phreed](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/phreed/32/2417_2.png) [@phreed](https://universal-blue.discourse.group/u/phreed)\
**Post date:** [September 27, 2024, 4:21pm UTC](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320/21 "2024-09-27T16:21:25Z")

</div>

The source for  
“[mcr.microsoft.com/devcontainers/python:3.12](http://mcr.microsoft.com/devcontainers/python:3.12)”  
is  
[images/src/python at main · devcontainers/images · GitHub](https://github.com/devcontainers/images/tree/main/src/python)

I see `dev-3.12` in [https://mcr.microsoft.com/v2/devcontainers/python/tags/list](https://mcr.microsoft.com/v2/devcontainers/python/tags/list) .  
I am not sure what makes a git repository appropriate for use as a devcontainer image other than the presence of a .devcontainer.json file.  
I am not sure if the “[registry.fedoraproject.org/fedora-toolbox:40](http://registry.fedoraproject.org/fedora-toolbox:40)” is suitable as a devcontainer or if it is just unsuitable for devpod.

Here are some possibilities:

- [devcontainer lifecycle](https://containers.dev/implementors/spec/#lifecycle)
- [devcontainer features](https://containers.dev/features)
  - [devcontainer user](https://github.com/devcontainers/features/tree/main/src/common-utils)
  - [devcontainer sshd](https://github.com/devcontainers/features/tree/main/src/sshd)
  - Package manager : depends on the base OS, or dev environment (python, go, etc.)

[Next page](https://universal-blue.discourse.group/t/community-guide-setting-up-devpod-with-podman/320.md?page=2)
