Flutter Development in Toolbox on Silverblue

I created a custom Toolbx image which I plan on using for Flutter development. It keeps the fun mess Google thinks you should have haunting your home directory inside the container, and hopefully it will make it easier for me to switch between this and my many other projects without them turning into a single ball of intractable dependencies that refuse to work together :sweat_smile: the promise of Silverblue, huh?

Sharing because it might be useful for someone else and because I’d be interested in seeing how other people are doing this :slight_smile: bug reports, Pull Requests and suggestions welcome!

5 Likes

Wow! Very cool indeed! I do mostly react-native/node stuff and the mess on my system is already intense. Thank you for sharing this - will look into using this for Flutter!

Edit: nice documentation, too.

We could probably do something similar for React Native.

I had the pain of dealing with an old Ruby project the other day and was thinking I might build a “ruby-toolbx” which has rvm, etc installed and ready to go :sweat_smile:

1 Like

@jamesbelchamber : I am really happy to see what you have done here. :slight_smile:

1 Like

A ruby one would solve the biggest pain point for me now that you mention it. While node and nvm is messy but works, rvm and the ruby platform regularly break and cost me an hour to get my rails project running again. So should you ever release a ruby toolbx, please let me know! I may actually go and see if I can figure it out myself now to solve above pain point haha.

Hi @nikodunk ,
You could look at what GraalVM is doing for ruby like with podman you can use this for instance

FROM ghcr.io/graalvm/graalvm-ce:java11-21.2
WORKDIR /workdir
CMD bash

for a Dockerfile then use podman build -f Dockerfile
Which will build a GraalVM container that uses gu for package mgmt instead of RPM and you could then install the ruby addon for GraalVM and Truffle wit gu install ruby, and if you needed the native image tool gu install native-image. This image would give a minimal image with ruby development capabilities and a bash prompt and workspace directory. Of course this is very minimal just to show the beginnings of what you may want to do. You can find more here.

You then run the container with podman run -it --rm <image-ID>