Advertisement
gregoryadris

First Training

Dec 5th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. // main.go
  2.  
  3. package main
  4.  
  5. import (
  6. "encoding/json"
  7. "fmt"
  8. "log"
  9. "net/http"
  10. "os"
  11. "strings"
  12. )
  13.  
  14. func handleListEnv(w http.ResponseWriter, r *http.Request) {
  15. w.Header().Set("Content-Type", "application/json")
  16. env := make(map[string]string)
  17.  
  18. for _, pair := range os.Environ() {
  19. l := strings.Split(pair, "=")
  20. env[l[0]] = l[1]
  21. }
  22. result, err := json.Marshal(env)
  23. if err != nil {
  24. http.Error(w, "Error preparing the env", 500)
  25. return
  26. }
  27. w.Write(result)
  28. }
  29.  
  30. func handleWelcome(w http.ResponseWriter, r *http.Request) {
  31. who := r.URL.Query().Get("who")
  32. if who == "" {
  33. fmt.Fprintf(w, "Hello World!")
  34. return
  35. }
  36.  
  37. fmt.Fprintf(w, "Hello %s!!", who)
  38. }
  39.  
  40. func main() {
  41. http.HandleFunc("/env", handleListEnv)
  42. http.HandleFunc("/welcome", handleWelcome)
  43.  
  44. port := os.Getenv("LISTENING_PORT")
  45. if port == "" {
  46. port = "80"
  47. }
  48. addr := fmt.Sprintf(":%s", port)
  49. log.Printf("Starting server at %s", addr)
  50.  
  51. err := http.ListenAndServe(addr, nil)
  52. if err != nil {
  53. log.Fatalf("Failed to start http server:%v", err)
  54. }
  55. }
  56.  
  57. export CGO_ENABLED=0
  58. go build -o hello main.go
  59.  
  60. LISTENING_PORT=8080 ./hello
  61.  
  62. // Dockerfile
  63. FROM alpine
  64. RUN apk update && apk add ca-certificates curl && rm -rf /var/cache/apk
  65.  
  66. WORKDIR /hello
  67. ADD hello .
  68.  
  69. CMD ["./hello"]
  70.  
  71. sudo docker build -t hello:1.0 .
  72.  
  73. sudo docker run hello:1.0
  74.  
  75. sudo docker exec -it sh
  76.  
  77. curl http://localhost/env; echo
  78.  
  79. sudo docker run -p 8080:80 -d hello:1.0
  80.  
  81. for i in $(seq 1 50)
  82. do
  83. sudo docker run -p $((i+8080)):80 -d hello:1.0
  84. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement