
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!
La différence entre les K8 et Docker
Quelles sont les méthodes permettant à Docker d'entrer dans le conteneur ?
Que dois-je faire si le conteneur Docker ne peut pas accéder au réseau externe ?
A quoi sert l'image Docker ?
qu'est-ce que l'index MySQL
Introduction à la méthode d'interception de chaînes en js
métamoteur de recherche
Format de courrier électronique professionnel