使用的是Windows环境,将golang部署到Docker环境中
Windows中的操作
在windows中主要是将golang交叉编译成linux下运行的文件,第一步设置编译后的运行环境的配置,在需要编译的项目根目录下打开cmd,在命令行中依次输入
SET CGO_ENABLED=0
SET GOOS=linum
SET GOARCH=amd64
复制代码
执行完上述操作然后切换到main.go文件所在的位置执行go build 编译出的文件就能在linux下执行
Docker中的操作
由于使用的是Windows系统,关于Windows中安装Docker请自行百度,安装完成后,在docker中cd到上述生成的二进制文件的目录位置,执行
cp 源文件 目标文件件
例如:
cp account /test
复制代码
如果golang中有配置文件需要一并copy过去,注意代码中配置文件的位置,小编在此吃了不少亏.一般配置文件都是命令行中配置.以下操作均在test文件夹下. 然后就是编写Dockerfile了.有了二进制文件我们就能创建一个轻量的镜像,而不用使用golang的镜像.这里使用的是scratch.示例:
FROM scratch
#将配置文件一起拷贝到该目录下
COPY . /
EXPOSE 50052
ENTRYPOINT ["./account"]
复制代码
有了Dockerfile文件,在docker中运行
docker build -t test-image .
复制代码
执行结果如下:
执行完后查看镜像:docker images
复制代码
看到生成test-image,表示生成镜像已经完成了.也可以看到生成的镜像只有14.55m,比golang镜像几百兆小了几十倍.
最后就是运行容器:
docker run --name=test-container -p 50052:50052 test-image
复制代码
没出错就能看到golang项目运行成功了.