본문 바로가기

⭐ Kubernetes & EKS/Kubernetes (쿠버네티스)

쿠버네티스에서 실행할 go언어로 작성된 컨테이너 생성

728x90
반응형

# 쿠버네티스에서 실행한 Go언어로 구성된 컨테이너 작성

vim main.go

# 코드 작성

package main

import (
    "fmt"
    "github.com/julienschmidt/httprouter"
    "net/http"
    "log"
    "os"
)

func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    hostname, err := os.Hostname()
    if err == nil {
        fmt.Fprint(w, "Welcome! " + hostname +"\n")
    } else {
        fmt.Fprint(w, "Welcome! ERROR\n")
    }
}

func main() {
    router := httprouter.New()
    router.GET("/", Index)

    log.Fatal(http.ListenAndServe(":8080", router))
}

# golang 인스톨

sudo apt install golang

# git 허브에 있는 소스를 가져오기

go get github.com/julienschmidt/httprouter

go build main.go

ls

main 이라는 프로그램이 생성된 것을 확인

./main

curl 127.0.0.1:8080

우측 상단에 웹 미리보기 > 8080 포트에서 미리보기 클릭

Welcome! cs-351671895230-default-boost-hbz4g 라는 내용을 확인

# docker로 빌드하기

mkdir http_go

mv main ./http_go/

cd http_go

# dockerfile 작성하기

vim dockerfile

FROM golang:1.11

WORKDIR /usr/src/app

COPY main  /usr/src/app

CMD ["/usr/src/app/main"]

# 빌드 수행하기

docker build -t http-go .

# 빌드한 docker 실행해서 서비스 올리기

docker run -d -p 8080:8080 --rm http-go

# 빌드된 서비스 확인하기

docker ps

8080 포트로 실행되어 웹에 표시된 도커 id와 dockerps 실행시 표시되는 도커 id가 같으면 정상이다.

Welcome! fd5138b4faf8

# docker hub에 파일 업로드

docker tag http-go may9noy/http-go

docker login

docker push may9noy/http-go
728x90
반응형