The busybox one seems great as it comes with shells. php looks like it would add some issues.
Personally since I use go, I would create a go embedded app, which I would make a deb, rpm, and a dockerfile using “goreleaser”
package main
import (
"embed""net/http"
)
//go:embed static/*var content embed.FS
funcmain() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// Serve index.html as the default page
http.ServeContent(w, r, "index.html", nil, content)
})
// Serve static files
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(content))))
// Start the server
http.ListenAndServe(":8080", nil)
}
Would be all the code but allows for expansion later. However the image goreleaser builds doesn’t come with busybox on it so you can’t docker exec into it. https://goreleaser.com/customization/docker/
Most of the other options including the PHP one seem to include a scripting language or a bunch of other system tools etc. I think that’s overkill
The busybox one seems great as it comes with shells. php looks like it would add some issues.
Personally since I use go, I would create a go embedded app, which I would make a deb, rpm, and a dockerfile using “goreleaser”
package main import ( "embed" "net/http" ) //go:embed static/* var content embed.FS func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Serve index.html as the default page http.ServeContent(w, r, "index.html", nil, content) }) // Serve static files http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(content)))) // Start the server http.ListenAndServe(":8080", nil) }
Would be all the code but allows for expansion later. However the image goreleaser builds doesn’t come with busybox on it so you can’t
docker exec
into it. https://goreleaser.com/customization/docker/Most of the other options including the PHP one seem to include a scripting language or a bunch of other system tools etc. I think that’s overkill