1. golang:最新の基本イメージ
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"]
パッケージングイメージ
docker build -t gotest .
golang:latest 実際にコンテナ内にgo開発環境を構築するコンパイル処理ですが、このソースイメージパッケージは約800Mと比較的大きいです。
2. alpine:最新の基本イメージ
このイメージを使用する一般的なプロセスは、Linux 上に go プログラムをパッケージ化することです。最初にマシンにバイナリ ファイルを格納し、次にそれを 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 の 2 つの基本イメージをデプロイしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。