arran 🇦🇺

  • 0 Posts
  • 7 Comments
Joined 1 year ago
cake
Cake day: September 23rd, 2023

help-circle






  • 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