博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用docker进行测试,保存并生成可执行文件
阅读量:5213 次
发布时间:2019-06-14

本文共 1043 字,大约阅读时间需要 3 分钟。

docker 命令:

docker run --rm -v "$PWD":/go/src/github.com/ymmb/test --privileged=true -w /go/src/github.com/ymmb/test golang:1.8.3 go build -v -o test

  1.第一次执行会从本地先查找golang:1.8.3镜像,如果没有找到,会从dockerhub上下载该镜像;

    如果找到则直接生成container,然后在docker中进行编译,并生成可执行文件。

  2.docker run --rm:先从镜像 golang:1.8.3 生成 container, 执行完成后删除 docker 环境,

    但是在docker中执行 go build -v -o test 后生成的 test 可执行文件会保留。

  3.如果该服务调用了vendor包,则当前目录下必须要vendor目录和包文件,

    gopath 路径下也不行,执行  docker必须在main.go的目录下  

命令解析:

  -v "$PWD":/go/src/github.com/ymmb/test: 将本地的文件夹 "PWD" 和 docker 中

   /go/src/github.com/ymmb/test 进行软连接关联(自动生成该目录),这样 docker 中 test 目录和本地 "PWD" 的目录就是一个了。

  --privileged=true:privileged 使 container 内的 root 拥有真正的 root 权限,如不加该命令,

   则没有写入 container 和外界关联目录的权限(踩了这块的坑,docker 执行完成后就是没有保留可执行文件)。

  -w /go/src/github.com/ymmb/test:设置容器的工作目录. (docker 中的默认 GOPATH: /go/src/,

   应当和 -v 所指定的 docker 中的目录一致,并在 -v 关联的 container 外执行该 docker 命令)

 

  go build -v:可以使命令把执行过程中构建的包名打印出来。

   (想要在 docker 中执行的命令,可以是 shell 或其他,这里是执行 go 的编译命令)

转载于:https://www.cnblogs.com/chaselogs/p/9647713.html

你可能感兴趣的文章
李朋举第三次作业
查看>>
【题解】格子游戏
查看>>
laravel中ubuntu下执行php artisan migrate总是报错
查看>>
Liux下重启php
查看>>
求一维数组的最大子数组2(结对开发)
查看>>
纯css实现二级导航菜单效果,通过简单的鼠标事件操作页面元素样式变换实现二级导航菜单的功能,非常简单实用,...
查看>>
joomla结构分析 - 动态加载文件(类)
查看>>
linux下的日志压缩脚本
查看>>
【转载】【python】python练手项目
查看>>
MySql不允许从远程连接解决办法
查看>>
二级指针的三种内存模型
查看>>
制作透明背景图片(链接)
查看>>
【知识总结】后缀数组(Suffix_Array)
查看>>
转载<ViewPager更新问题>
查看>>
ReactJS 结合 antd-mobile 开发 h5 应用基本配置
查看>>
.Net Core 获取项目所有程序集,排除Microsoft、Nuget下载的
查看>>
RDLC报表问题:尚未指定报表“Report1”的报表定义
查看>>
cordova 生成发行版apk,并添加证书 – 畅玩Coding
查看>>
Expression Blend4经验分享:制作一个简单的文字按钮样式
查看>>
[Songqw.Net 基础]WPF插件化中同步Style
查看>>