编译后的go程序无法在alpine基础镜像创建的容器运行问题
问题描述:我要使用容器创建一个使用golang的http的服务,为了不让镜像太大,所以选择了基础镜像alpine,才几m,但把go的程序编译之后无法在容器中运行,解决办法是在编译go程序时,加上参数-tags netgo。具体做法如下:1、首先下载apline基础镜像:docker pull docker.io/alpine2、编译go程序:(我的程序是sensor.go,编...
问题描述:
我要使用容器创建一个使用golang的http的服务,为了不让镜像太大,所以选择了基础镜像alpine,才几m,但把go的程序编译之后无法在容器中运行,解决办法是在编译go程序时,加上参数-tags netgo。
具体做法如下:
1、首先下载apline基础镜像:
docker pull docker.io/alpine
2、编译go程序:(我的程序是sensor.go,编译之后放在sensors目录下)
go build -tags netgo -o sensors/sensor sensor.go
3、dockerfile文件,保存为sensor:
FROM docker.io/alpine:latest
MAINTAINER weinengl
# 拷贝相关文件。
COPY sensors/sensor /tmp/
RUN chmod +x /tmp/sensor
ENTRYPOINT ["/tmp/sensor"]
4、镜像制作命令:
docker build -t reg.netlab.com/temperature:v1 -f sensor .
制作完成之后运行即可:
docker run -itd -p 8881:8881 --name test10 reg.netlab.com/temperature:v1
更多推荐
所有评论(0)