docker 部署 go 语言程序以windows系统为例 | go 技术论坛-大发黄金版app下载
1.首先是你的系统上装上docker.desktop
创建go-web项目gotest
main.go
package main
import (
"fmt"
"net/http"
)
func test2(w http.responsewriter, r *http.request) {
fmt.fprintf(w, "hello world!")
}
func main() {
http.handlefunc("/", test2)
http.listenandserve(":3000", nil)
}
在命令行执行
$ go run main.go
确保项目可以访问
go 语言支持跨平台交叉编译,也就是说我们可以在 windows 或 mac 平台下编写代码,最后将代码编译成能够在 linux amd64 服务器上运行的程序。
根目录使用以下指令可以静态编译 linux
平台 amd64
架构的可执行文件:
$ cgo_enabled=0 goos=linux goarch=amd64 go build -o gotest
切记无扩展名在项目根目录下创建dockerfile文件(切记无扩展名)
# 使用官方go镜像作为构建环境
from golang:1.22-alpine as builder
run mkdir /app
# 设置工作目录
workdir /app
# 复制项目文件
copy gotest /app/gotest
# 运行可执行文件
entrypoint [ "./gotest" ]
打开docker应用,在项目根目录下运行以下命令来构建docker镜像:
#go-testapp这个是镜像名称换成你的your-image-name
docker build -t go-testapp .
过程可能需要几分钟
之后通过命令查看一下生成的镜像
docker images
执行命令运行容器
docker run -p 8082:3000 -d go-testapp:latest
通过docker ps -a命令可以查看一下容器
最后访问一下
本作品采用《cc 协议》,转载必须注明作者和本文链接
于江
from golang:1.22-alpine as builder
不用多阶段构建,as builder 去掉吧,感觉怪怪的。