docker golang 开发环境

文章介绍了如何利用Docker解决开发环境与生产环境一致性问题,通过创建编译环境镜像,确保编译和依赖的一致性。作者选择了CentOS为基础镜像,并安装了必要的工具,如make、Python、behave和protobuf。编译过程涉及将本地代码拷贝到容器中进行编译,然后将结果拷回本地,最后构建服务镜像。
摘要由CSDN通过智能技术生成

go 版本的不一致,依赖库不一致,导致编译失败;代码生成工具不一致,导致生成代码有问题;依赖工具缺失,导致测试不通过等等,开发环境和生产环境之间的差异会导致各种各样奇怪的问题,而 docker 特别擅长解决这种一致性问题

总体方案

最简单粗暴的一种方式就是每次都将代码拷贝到一个新的容器内,执行编译,编译完成后直接将容器制作成镜像,但这种方式每次编译都需要重新拉取依赖,比较耗时

我们采用在这个基础上稍作优化,启动一个固定的容器用于编译,编译完成后将生成的结果拷贝出来,制作新的镜像,能达到近乎本地编译的效果

编译环境镜像

没有直接使用 dockerhub 上的 golang 镜像,是因为我们的项目除了 golang 可能还依赖一些别的工具,比如 makefile,python,protoc 等等,就需要自己制作镜像了,这里我选 centos 作为基础镜像,主要是考虑到后面制作服务镜像的时候也仅需要 centos 即可,不需要完整的 golang 环境

FROM centos:centos7
RUN yum install -y kde-l10n-Chinese && yum reinstall -y glibc-common && localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 
RUN yum install -y epel-release
RUN yum install -y docker-io
RUN yum install -y go
RUN yum install -y make

# behave support
RUN yum install -y python36 pytho
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值