Currently the project maintains two separate Containerfiles — one for Ubuntu (Containerfile) and one for Alpine (Containerfile.alpine). They differ significantly in their approach:
- Ubuntu: installs openvox-server and openvoxdb-termini via
.deb packages from the APT repository, uses System Ruby, and relies on the packaged file layout.
- Alpine: installs from upstream tarballs, builds the directory structure manually, installs gems (including openvox/puppet) at the system level, and runs rootless with
USER puppet:0.
This dual-image approach creates maintenance overhead — every fix or improvement needs to be applied twice, and the two images can drift apart in behavior. For example, rootless container support (see #121, #123) is straightforward on Alpine but much harder on Ubuntu due to the deb package layout and assumptions.
Some questions worth discussing:
- Is there a reason to keep both images long-term, or could the project consolidate on one?
- If both are kept, should they converge on the same installation method (e.g., both using tarballs)?
- Are there users who specifically depend on the Ubuntu-based image?
cc @rwaffen @sebastianrakel
Currently the project maintains two separate Containerfiles — one for Ubuntu (
Containerfile) and one for Alpine (Containerfile.alpine). They differ significantly in their approach:.debpackages from the APT repository, uses System Ruby, and relies on the packaged file layout.USER puppet:0.This dual-image approach creates maintenance overhead — every fix or improvement needs to be applied twice, and the two images can drift apart in behavior. For example, rootless container support (see #121, #123) is straightforward on Alpine but much harder on Ubuntu due to the deb package layout and assumptions.
Some questions worth discussing:
cc @rwaffen @sebastianrakel