728x90
반응형
SMALL
최근 사이드 프로젝트를 하면서 Go 서버를 컨테이너에 띄운 상태로 개발하게 되었다.
컨테이너 환경에서의 개발에서는 익숙하지 않아 컨테이너 환경에서 디버그를 공부하는 글을 작성하려고 한다.
main.go 파일을 작성 후
- main.go
package main
import (
"log"
"net/http"
"strconv"
)
const port = "8000"
func main() {
http.HandleFunc("/fib", fibHandler)
log.Printf("listening on port %s", port)
log.Fatalln(http.ListenAndServe(":"+port, nil))
}
func fibHandler(w http.ResponseWriter, r *http.Request) {
ns, ok := r.URL.Query()["num"]
if !ok || len(ns) < 0 {
log.Println("param 'num' is missing")
return
}
n0, err := strconv.Atoi(ns[0])
if err != nil {
log.Printf("invalid number: %v", err)
return
}
fb := strconv.Itoa(fib(n0))
w.Write([]byte(fb + "\n"))
}
func fib(n int) int {
a, b := 1, 1
for i := 0; i < n-2; i++ {
a, b = b, a+b
}
return b
}
터미널에서 `go run main.go` 라고 입력해준다.
나는 Goland 를 사용하므로 Run/Debug Configurations 을 눌러 Go Remote 를 선택한다.
Name 을 Docker 로 바꿔준다.
자 이제 도커 컨테이너를 띄워보자.
docker-compose up --build -d
728x90
반응형
LIST
'Backend > 노트' 카테고리의 다른 글
FastAPI 를 사용한 파이썬 웹 개발 (2) | 2023.12.01 |
---|---|
고랭 애플로그인 구현 (golang apple login) (0) | 2023.05.06 |
따라하며 배우는 도커와 CI 환경 (1) | 2023.03.26 |
쉽고 빠른 Go 시작하기 (0) | 2023.02.27 |
Gin (0) | 2022.10.15 |