[ko]Web Server RTA(Homebrew, Docker, Go)
바로 시작합니다!
우선 홈brew, Docker, Go를 넣어야 합니다.이번에는 Giitpod를 사용하여 시간을 단축한다.
다음은 메일입니다.고와 고.mod 준비해.표준 포장만 사용하여 글씨 크기를 간결하게 줄여 구축 시간을 단축합니다.
package main
import (
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!"))
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
module main
go 1.17
는 입력의 용이성을 고려하여 Homebrew로 설치한다.$ brew install ko
다른 것은 컬이 끌어오거나 고로 구축하는 방법도 있고, 홈brew를 사용하면 15글자로 하면 된다.마지막
docker run
은 명령ko publish -L
에서 구축과 시작을 동시에 실행합니다.$ docker run -p 8080:8080 $(ko publish -L .)
-L
옵션을 사용하면 로컬에서 컨테이너 이미지를 만들 수 있기 때문에 다양한 설정이 필요 없고 시간을 단축할 수 있습니다.$ curl https://8080-<color>-<animal>-<id>.<region>.gitpod.io/
Hello, World!
여기 타이머가 멈췄어요.기록은 약 3분이다.일단 완주 소감.
gitpod /workspace/gitpod-go $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ko.local/main-fad58de7366495db4650cfefac2fcd61 ... f59dd2e395a6 51 years ago 8.41MB
ko.local/main-fad58de7366495db4650cfefac2fcd61 latest f59dd2e395a6 51 years ago 8.41MB
8.41MB는 매우 가볍습니다.이것은
gcr.io/distroless/static:nonroot
이 가상 사이즈가 0B의 용기에 Go의 2진법, 시간대 데이터, CA 인증서만 넣었기 때문이다.용기 안에서 사용할 수 있는 명령은
main
명령뿐이고 Go의 코드가 취약하지 않으면 100% 안전하다.다만 이번에 사용한 Docker와 ko는 GABA가 발생할 수 있으므로 99%의 안전을 말하는 것이 좋다.
그리고 무엇보다 환경을 미리 준비하면 한두 개의 지령만으로 쉽게 시작할 수 있기 때문에 누구나 간단하게 웹 서버를 만들 수 있다.
물론 설정과 코드를 바꾸면 파일 서버와 인터넷 애플리케이션도 사용할 수 있어 편리하지 않겠는가.
반드시 ko의 문서와 Go의 기능을 참고하여 다양한 용기 이미지를 시도해 보십시오.
Buildpacks와 Distroless를 조사하는 과정에서 다음과 같은 블로그를 찾았습니다.
이번에 소개된 소스 코드는 Public Domaain의 The Unlicense입니다. Copy, Clone, Download 등을 사용하십시오.
이번엔 여기까지.
읽어주셔서 감사합니다.
Reference
이 문제에 관하여([ko]Web Server RTA(Homebrew, Docker, Go)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tkithrta/articles/a4b9607cd58f12텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)