浏览代码

Загрузить файлы ''

gr792_kkm 2 年之前
父节点
当前提交
fc75ba17bb
共有 2 个文件被更改,包括 47 次插入0 次删除
  1. 8 0
      Dockerfile
  2. 39 0
      main.go

+ 8 - 0
Dockerfile

@@ -0,0 +1,8 @@
+#build stage
+FROM golang:alpine
+WORKDIR /go/src/app
+COPY . .
+RUN go mod init main
+RUN go mod tidy 
+RUN go build -o main .
+ENTRYPOINT [ "go", "run", "main" ]

+ 39 - 0
main.go

@@ -0,0 +1,39 @@
+package main
+
+import (
+	"fmt"
+	"log"
+	"net"
+	"net/http"
+	"regexp"
+	"time"
+)
+
+func main() {
+
+	http.HandleFunc("/Info", info)
+	http.HandleFunc("/Ok", ok)
+	http.HandleFunc("/Status", status)
+	http.ListenAndServe(":8081", nil) // устанавливаем порт веб-сервера
+	err := http.ListenAndServe(":8081", nil)
+	if err != nil {
+		log.Fatal("ListenAndServe: ", err)
+	}
+}
+
+func info(w http.ResponseWriter, r *http.Request) {
+	fmt.Fprint(w, "HTTP-status 200")
+}
+
+func ok(w http.ResponseWriter, r *http.Request) {
+	fmt.Fprint(w, "Kruglov Kirill,792")
+}
+func status(w http.ResponseWriter, r *http.Request) {
+	ip, _, _ := net.SplitHostPort(r.RemoteAddr) // SHP на выходе дает 3 переменные
+	re := regexp.MustCompile(`[.].*[.]`)        // MC библиотека для работы с регулярками;
+	// [.] - Соответствует одному символу из содержащихся в квадратных скобках
+	fmt.Fprintln(w, re.ReplaceAllString(ip, ".*.*.")) // В реплейс загоняем необработанный текст, он на выходе выдает обработанный с помощью регулярки
+	fmt.Fprintf(w, "Kruglov Kirill,792"+"\n")
+	fmt.Fprintln(w, time.Now().Format("2006-01-02 3:4:5 pm"))
+
+}