[ko]Web Server RTA(Homebrew, Docker, Go)

5436 단어 DockerGokotech
빠르고 가볍고 안심할 수 있는 웹 서버 RTA를 구축하는 것은 정말 대단합니다!
바로 시작합니다!
우선 홈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의 기능을 참고하여 다양한 용기 이미지를 시도해 보십시오.
https://github.com/google/ko
Buildpacks와 Distroless를 조사하는 과정에서 다음과 같은 블로그를 찾았습니다.
https://cloud.google.com/blog/ja/products/containers-kubernetes/ship-your-go-applications-faster-cloud-run-ko
이번에 소개된 소스 코드는 Public Domaain의 The Unlicense입니다. Copy, Clone, Download 등을 사용하십시오.
https://gitlab.com/acefed/gitpod-go/-/tree/ko
이번엔 여기까지.
읽어주셔서 감사합니다.

좋은 웹페이지 즐겨찾기