为 Go 应用创建 Docker 镜像
嗯嗯, 最近开始用 Golang 了.
今天需要为 Go 应用创建对象, 看了下官方博客. 拿 hello world 做个测试.
使用下面的命令创建个新的项目
$ mkdir -p $GOPATH/src/github.com/addozhang/golang-hello-world && cd "$_"
$ go mod init github.com/addozhang/golang-hello-world
go: creating new go.mod: module github.com/addozhang/golang-hello-world
$ cat << EOF > main.go
package main
import "fmt"
func main() {
fmt.Println("Hello world")
}
EOF
# go fmt
运行检查一次
$ go run main.go
Hello world
程序没问题, 下面就是构建镜像了. 创建一个 Dockerfile 文件, 内容如下:
FROM golang
LABEL Author="addozhang"
ADD . /go/src/github.com/addozhang/golang-hello-world
RUN go install github.com/addozhang/golang-hello-world
ENTRYPOINT [ "/go/bin/golang-hello-world" ]
构建镜像:
$ docker build -t addozhang/golang-hello-world .
运行镜像:
$ docker run --rm addozhang/golang-hello-world:latest
Hello world
运行没问题, 收工