前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用容器编译kylin

用容器编译kylin

作者头像
runzhliu
发布2021-06-09 14:20:30
3270
发布2021-06-09 14:20:30
举报
文章被收录于专栏:容器计算

我们经常要编译各种框架和软件,但是都在一台机器上编译好不好呢?

我觉得不好,因为很多框架和软件的依赖是有冲突的,比如有些需要JDK 1.7有些需要JDK 1.8,还有各种依赖库,这些都揉在编译机里,那机器的环境很快就会变成乱七八糟了,即使用脚本和 bash_profile 我认为都是不够的。

所以我一般都是在容器里去做软件的编译,我只要保证我的编译机上的 docker 是正常的就好了,当然了,要搞定不同类型不同语言的框架和软件在容器里编译,除了要有框架软件相关的知识以外,还需要比较熟悉 docker 和容器,只要玩的溜了,其实有很多不同的方法,总之就是殊途同归,不一样的风骚玩法,同样的结果。

今天有同事让我看看他编译的 kylin 有什么问题,我看了一下报错信息。

在这里插入图片描述
在这里插入图片描述

这个问题好解决,虽然我没看过 maven gpg 这个插件的源码,但看名字大概能猜到一二,反正就是该同学的编译机上没有 gpg 这个软件就是了。关于怎么装 gpg 就不赘述了,谷歌有的。

一般遇到这种问题,我可能都会直接在 docker hub 上一下合适的镜像,然后直接把项目 git clone 进去,然后就开始编译。对于 kylin,看一下 pom 文件,我一下子就锁定了 maven+jdk 的镜像了 maven:3.8.1-openjdk-17-slim。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
docker run -it --network=host --mount type=bind,source=/root/.m2,target=/root/.m2 --entrypoint=bash --rm maven:3.8.1-openjdk-17-slim

–network 是为了用本机的网络,–mount 是为了把我的 .m2 文件夹挂载到容器,这样很多依赖我本地有,就不需要走网络继续去拉取了。

代码语言:javascript
复制
build/script/package.sh -Dmaven.test.skip=true -Dcheckstyle.skip -Papache-release -pl storage-hbase

然后就到 kylin 文件夹下面执行 mvn 的命令就完事了。当然执行的时候会有些环境的问题,比如镜像里没有 git,还有 kylin 编译需要本地有 npm,第一次编译的时候就说 npm 没找到了,那就在容器里装一下好了。

代码语言:javascript
复制
apt-get install git npm
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档