For the last several months I have been using a Chromebook as my primary personal machine - for gaming, development and other general computing tasks (maybe I’ll write up a review soon..) As a part of this, I’m heavily leveraging the Linux development environment that is available.
This development environment is a LXD container that runs debian (currently bullseye) with limited permissions to limit the security impact. This container works awesome for running linux apps, which for me means awesome Visual Studio Code support. One of the limitations of this container though, is that Docker does not work in the reduced permission environment, so I needed to set-up Podman (which I prefer anyway.)
Here is the process I used to get Podman up and running, allowing me to run containers that have tools for development (my test target was the PBnJ open source project.)
# Fire up your crosh shell (not linux) by hitting ctrl+alt+t and enter:
vmc start termina
# Enable security nesting with:
lxc config set penguin security.nesting=true
# Restart the lxc container:
lxc restart penguin
# Setup the gids:
lxc exec penguin -- /bin/sh -c "printf '%s\n' '1000:100000:65536' | tee /etc/subuid /etc/subgid"
# Close out with:
exit
vmc stop termina
# Now let’s install podman with:
sudo apt get install podman
# Finally, before starting up we need to add the following config files:
/etc/containers/storage.conf
[storage]
driver = "btrfs"
/etc/containers/containers.conf
[containers]
keyring=false
# Update /etc/containers/registries.conf to include the following:
unqualified-search-registries = ["docker.io"]