Maison > Opération et maintenance > Docker > Docker déploie deux images de base de go

Docker déploie deux images de base de go

王林
Libérer: 2020-06-15 17:50:17
avant
3410 Les gens l'ont consulté

Docker déploie deux images de base de go

1. golang:dernière image de base

mkdir gotest
touch main.go
touch Dockerfile
Copier après la connexion

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))
}
Copier après la connexion

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"]
Copier après la connexion

Image d'emballage

docker build -t gotest .
Copier après la connexion

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"]
Copier après la connexion

Image d'emballage :

docker build -t common .
Copier après la connexion

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal