A long-lived LXC container running in production which has all of my development tools installed.
Short-lived QEMU (KVM) VMs from the latest available image with no additional tools installed.
I'd like to have one which marries the best of both worlds. ie. An image that is built separately from the latest images which comes bundled with extra development tools and which can easily be deployed in production.
The best way to do this would probably be to have an OCI image which can pull in additional packages and helpful configurations and which can be supplemented with additional secrets and options when it is created. This should include:
gnupg & keychain - for signing of commits
neovim & sensible plugins - for an enhanced development environment
ssh keys & alt GitHub repo - to automatically configure developer fork
I have attempted similar things in the past by just installing MailCleaner in a distrobox, but I mostly just end up with the first environment described above with more regular snapshots and trouble with some container isolation issues. There are some tools that seek to make generation and publishing of distrobox images easier, such as https://github.com/ublue-os/boxkit .
It would be good if we had 2-3 simple commands which could get interested developers into a development environment with the ability to push to their fork quickly. This should be documented in the contributing guide when possible.
To start with, the OCI container may still have some isolation problems, so having it run in production may not be immediately available; being able to develop and have the WebUI work is the priority. However, if it does get to a state where it can work in production, then providing additional OCI images without the development tools so that MailCleaner can be deployed with Docker/Podman/Kubernetes would be a worthwhile goal as well.
I've always had 2 basic development environments:
I'd like to have one which marries the best of both worlds. ie. An image that is built separately from the latest images which comes bundled with extra development tools and which can easily be deployed in production.
The best way to do this would probably be to have an OCI image which can pull in additional packages and helpful configurations and which can be supplemented with additional secrets and options when it is created. This should include:
I have attempted similar things in the past by just installing MailCleaner in a
distrobox
, but I mostly just end up with the first environment described above with more regular snapshots and trouble with some container isolation issues. There are some tools that seek to make generation and publishing ofdistrobox
images easier, such as https://github.com/ublue-os/boxkit .It would be good if we had 2-3 simple commands which could get interested developers into a development environment with the ability to push to their fork quickly. This should be documented in the contributing guide when possible.
To start with, the OCI container may still have some isolation problems, so having it run in production may not be immediately available; being able to develop and have the WebUI work is the priority. However, if it does get to a state where it can work in production, then providing additional OCI images without the development tools so that MailCleaner can be deployed with Docker/Podman/Kubernetes would be a worthwhile goal as well.