1. golang:dernière image de base
mkdir gotest touch main.go touch Dockerfile
Exemple de code :
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)) }
Configuration du fichier Docker
#源镜像 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"]
Image d'emballage
docker build -t gotest .
golang:latest Le processus de compilation consiste en fait à créer un environnement de développement go dans le conteneur. Cet emballage d'image source fait environ 800 Mo, ce qui est relativement volumineux.
2. alpine : dernière image de base
Le processus général d'utilisation de cette image consiste à empaqueter le programme go sous Linux. machine d'abord dans un fichier binaire, puis lancez-le dans l'environnement apine et exécutez le fichier compilé.
Par défaut, la variable d'environnement d'exécution de Go CGO_ENABLED=1, ce qui signifie que cgo est démarré par défaut, vous permettant d'appeler du code C dans le code Go. CGO est désactivé en définissant CGO_ENABLED=0. Vous devez donc exécuter : CGO_ENABLED=0 go build C'est tout.
Ce paquet d'images de base ne fait que 13 Mo, ce qui est très petit.
#源镜像 FROM alpine:latest #设置工作目录 WORKDIR $GOPATH/src/github.com/common #将服务器的go工程代码加入到docker容器中 ADD . $GOPATH/src/github.com/common #暴露端口 EXPOSE 3002 #最终运行docker的命令 ENTRYPOINT ["./common"]
Image d'emballage :
docker build -t common .
Tutoriel recommandé :docker
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!