这里的 CGO_ENABLED=0 禁用了 CGO,而 -a 标志强制重新构建所有包,-installsuffix cgo 防止 CGO 生成 CGO 链接的对象。
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
请确保你的 Go 项目没有引用 cgo,并使用静态编译重新构建容器镜像。重新构建容器时使用:
docker build -t xxx:1.0 .
最后花了一天找资料终于解决了
下载Alpine镜像很慢有时候会卡住,因为使用的资源默认是境外服务器,将境外服务器替换为国内服务器即可
# 表示依赖 alpine 最新版
FROM alpine:latest
# 下载Alpine镜像很慢有时候会卡住,因为使用的资源默认是境外服务器,将境外服务器替换为国内服务器即可
RUN set -eux && sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
function deploy2 {
sudo rm -f main
go build -o main main.go
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main main.go
sudo chown root:root main
sudo chmod +x main
sudo docker build -f Dockerfile2 -t $name:$version .
sudo rm -f main
sudo docker rm $name -f
sudo docker run --restart=always --name $name -p 8087:8080 -v $logs:/apps/log -e Mode="$mode" -d $name:$version
}
https://blog.csdn.net/qq_39272466/article/details/131212322?spm=1001.2014.3001.5502