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

确保项目可以访问

docker 部署 go 语言程序以windows系统为例
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 部署 go 语言程序以windows系统为例
之后通过命令查看一下生成的镜像

docker images

docker 部署 go 语言程序以windows系统为例
执行命令运行容器

docker run -p 8082:3000 -d go-testapp:latest

docker 部署 go 语言程序以windows系统为例

通过docker ps -a命令可以查看一下容器

docker 部署 go 语言程序以windows系统为例

最后访问一下

docker 部署 go 语言程序以windows系统为例

本作品采用《cc 协议》,转载必须注明作者和本文链接
于江
讨论数量: 2

from golang:1.22-alpine as builder 不用多阶段构建,as builder 去掉吧,感觉怪怪的。

2周前
(楼主) 2周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图