Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Docker stellt zwei grundlegende Go-Images bereit

Docker stellt zwei grundlegende Go-Images bereit

王林
王林nach vorne
2020-06-15 17:50:173378Durchsuche

Docker stellt zwei grundlegende Go-Images bereit

1. golang:neuestes Basisbild

mkdir gotest
touch main.go
touch Dockerfile

Beispielcode:

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-Konfiguration

#源镜像
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"]

Verpackungsbild

docker build -t gotest .

golang:latest Der Kompilierungsprozess besteht tatsächlich darin, eine Go-Entwicklungsumgebung im Container zu erstellen. Diese Quellbildverpackung ist etwa 800 MB groß, was relativ groß ist.

2. alpine:latest basic image

  • Der allgemeine Prozess zur Verwendung dieses Images besteht darin, das Go-Programm unter Linux zu packen Maschine zuerst in eine Binärdatei, werfen Sie sie dann in die Apine-Umgebung und führen Sie die kompilierte Datei aus.

  • Standardmäßig ist die Laufzeitumgebungsvariable von Go CGO_ENABLED=1, was bedeutet, dass cgo standardmäßig gestartet wird, sodass Sie C-Code in Go-Code aufrufen können. CGO wird deaktiviert, indem CGO_ENABLED=0 gesetzt wird. Sie müssen also Folgendes ausführen: CGO_ENABLED=0 go build.

  • Dieses Basisbildpaket ist nur 13 Millionen groß, was sehr klein ist.

#源镜像
FROM alpine:latest
#设置工作目录
WORKDIR $GOPATH/src/github.com/common
#将服务器的go工程代码加入到docker容器中
ADD . $GOPATH/src/github.com/common
#暴露端口
EXPOSE 3002
#最终运行docker的命令
ENTRYPOINT ["./common"]

Verpackungsbild:

docker build -t common .

Empfohlenes Tutorial: Docker

Das obige ist der detaillierte Inhalt vonDocker stellt zwei grundlegende Go-Images bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen