1. golang:latest 기본 이미지
mkdir gotest touch main.go touch Dockerfile
샘플 코드:
package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { fmt.Fprint(writer, "Hello World") }) fmt.Println("3000!!") log.Fatal(http.ListenAndServe(":3000", nil)) }
Dockerfile 구성
#源镜像 FROM golang:latest #设置工作目录 WORKDIR $GOPATH/src/github.com/gotest #将服务器的go工程代码加入到docker容器中 ADD . $GOPATH/src/github.com/gotest #go构建可执行文件 RUN go build . #暴露端口 EXPOSE 3000 #最终运行docker的命令 ENTRYPOINT ["./gotest"]
Packaging 이미지
docker build -t gotest .
golang:latest 컴파일 프로세스는 실제로 컨테이너 내에서 Go 개발을 구축하고 있습니다. 소스 환경의 이미지 패키지는 약 800M로 비교적 큽니다.
2.alpine:latest 기본 이미지
이 이미지를 사용하는 일반적인 프로세스는 먼저 go 프로그램을 Linux 시스템의 바이너리 파일로 패키징한 다음 apine 환경에 넣고 실행하는 것입니다. 컴파일된 파일.
기본적으로 Go의 런타임 환경 변수 CGO_ENABLED=1은 cgo가 기본적으로 시작되어 Go 코드에서 C 코드를 호출할 수 있음을 의미합니다. CGO_ENABLED=0을 설정하면 CGO가 비활성화됩니다. 따라서 다음을 실행해야 합니다. CGO_ENABLED=0 go build입니다.
이 기본 이미지 패키지는 13M에 불과해 매우 작습니다.
#源镜像 FROM alpine:latest #设置工作目录 WORKDIR $GOPATH/src/github.com/common #将服务器的go工程代码加入到docker容器中 ADD . $GOPATH/src/github.com/common #暴露端口 EXPOSE 3002 #最终运行docker的命令 ENTRYPOINT ["./common"]
포장 이미지:
docker build -t common .
추천 튜토리얼: docker
위 내용은 Docker는 go의 두 가지 기본 이미지를 배포합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!