golang通过makefile编译文件

makefile

build:
	GOOS=linux GOARCH=amd64 go build -tags netgo -o greeter-srv  main.go
	docker build -t greeter-srv .

run:
	docker run --rm  -e MICRO_REGISTRY=mdns greeter-srv

dockerfile

FROM alpine
ADD greeter-srv /greeter-srv
ENTRYPOINT [ "/greeter-srv" ]

解释:
编译时添加-tags netgo可以使编译后的文件成为静态链接的可执行文件, 不再依赖某些其它东西
如果不加这个的话, 生成的文件只能运行在debian或者centos等其他镜像上

设置

export CGO_ENABLED=0   

也是可以的

你可能感兴趣的:(golang)