diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..16ff916 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +README.md +Jenkinsfile +Dockerfile +.gitignore +.idea \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..efae37f --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..1a164b0 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/test-ci-cd.iml b/.idea/test-ci-cd.iml new file mode 100644 index 0000000..5e764c4 --- /dev/null +++ b/.idea/test-ci-cd.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..129b74c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:1.23.6 AS builder + +WORKDIR /app + +COPY go.mod . + +RUN go mod tidy + +COPY . . + +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o server main.go + +FROM alpine:latest + +WORKDIR /app + +COPY --from=builder /app/server /app/server + +RUN chmod +x /app/server + +ENTRYPOINT ["/app/server"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 4a76d96..1db4248 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # test-ci-cd +```bash +docker build -t test-ci-cd . +docker run --rm --name test-ci-cd -p 8000:8080 test-ci-cd:latest diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c8beda6 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module main + +go 1.23.2 diff --git a/main.go b/main.go new file mode 100644 index 0000000..bd2c7af --- /dev/null +++ b/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "fmt" + "net/http" +) + +func handler(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "Hello, World!") +} + +func main() { + http.HandleFunc("/", handler) + + port := ":8080" + fmt.Println("Сервер запущен на порту", port) + if err := http.ListenAndServe(port, nil); err != nil { + fmt.Println("Ошибка запуска сервера:", err) + } +}