如,项目需要在golang1.19环境下开发,可以使用以下方式:
docker run --rm -it -v /workspace:/app golang:1.19 /bin/bash
go build
此外,开发环境还有其他配置,如镜像加速,开发依赖,可以打包一个镜像替代golang:1.19:
# 构建镜像
docker build --pull --rm -f "Dockerfile-build"-t jianboy/go-build:1.20 .
# 别名 go 命令,执行 go 命令,启动开发容器,并传递参数进容器
alias go='docker run -it --rm -v /workspace/caddy:/workspaces jianboy/go-build:1.20'
# 构建项目
git clone https://github.com/caddyserver/caddy
docker run -it --rm -v /workspace/caddy:/workspaces jianboy/go-build:1.20
cd caddy/cmd/caddy/
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -o caddy
git clone https://gitee.com/dromara/mayfly-go
docker run -it --rm -v /workspace/mayfly-go/server:/workspaces jianboy/go-build:1.21
go mod download
GO111MODULE=on CGO_ENABLED=0 GOOS=linux \
go build -a \
-o mayfly-go main.go
Go 语言支持跨平台交叉编译,即在linux就可以编译linux,windows,Android,mac等多平台二进制文件。