basic.go 691 B

12345678910111213141516171819202122232425262728293031323334
  1. package main
  2. import (
  3. "fmt"
  4. "net"
  5. "net/http"
  6. "os"
  7. "path/filepath"
  8. )
  9. func main() {
  10. p, err := filepath.Abs(filepath.Join("run", "docker", "plugins"))
  11. if err != nil {
  12. panic(err)
  13. }
  14. if err := os.MkdirAll(p, 0755); err != nil {
  15. panic(err)
  16. }
  17. l, err := net.Listen("unix", filepath.Join(p, "basic.sock"))
  18. if err != nil {
  19. panic(err)
  20. }
  21. mux := http.NewServeMux()
  22. server := http.Server{
  23. Addr: l.Addr().String(),
  24. Handler: http.NewServeMux(),
  25. }
  26. mux.HandleFunc("/Plugin.Activate", func(w http.ResponseWriter, r *http.Request) {
  27. w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1.1+json")
  28. fmt.Println(w, `{"Implements": ["dummy"]}`)
  29. })
  30. server.Serve(l)
  31. }