# My devcontainer Container for distrobox that I use for development that is based on fedora-toolbox image. ## Installed Tools - **System Utilities**: `duf`, `fd-find`, `fish`, `fzf`, `htop`, `ncdu`, `tmux`, `vim`, `zstd`, `ipcalc`, `sdcv`, `tldr`, `jq`, `genius`, `pwgen`, `httpie`, `ripgrep`, `lsd` - **Development Tools**: - **Languages**: `golang`, `nodejs`, `python3-devel` - **Database Clients**: `mycli`, `pgcli` - **Version Control**: `git-lfs` - **Cloud Tools**: `awscli` - **Build Tools**: `make` - **Editor**: Visual Studio Code (`code`) ## Custom User - A user `cx` is preconfigured with: - UID: `1000` - GID: `1000` - Default shell: `fish` ## Podman and Docker Compatibility - Podman and Docker commands are aliased to a custom script (`uni.sh`) for seamless container management. ## Incus Support - Includes Incus link to the host's instance of Incus. ## Usage Including systemd: ``` distrobox create -i gitea.ceperka.net/cx/devcontainer:f42-latest -n drone --hostname (hostname) --init ``` No systemd: ``` distrobox create -i gitea.ceperka.net/cx/devcontainer:f42-latest -n drone --hostname (hostname) ``` Hostname must be same as the host's machines, otherwise exported apps are shown wrongly in the luncher. To enter the container: ``` distrobox enter drone ``` When inside you can export *code* into the host's system which makes it like it's installed directly on the host system itself, including URL processing. ``` distrobox-export --app code ``` From the host system this image imports `podman` and `incus` so you can use both inside the container. Any application can work both ways. *distrobox* mounts wayland socket into the container so even GUI apps work seamlessly. There is wrong *StartupWMClass* parameter that equals `Code` in *drone-code.desktop* file. It should read: ``` StartupWMClass=code ``` Otherwise Gnome will wrongly group vscode's windows together. Other tools to export: ``` distrobox-export --bin aws ```