您尚未登录。

楼主 # 2022-06-28 22:54:48

madao
会员
注册时间: 2022-06-24
已发帖子: 1
积分: 31

分享一个docker快速配置Tina编译环境

前两天刚入手的MQ-R,查资料编译tina镜像发现官方推荐的编译环境是ubuntu 14或 16,群友告知ubuntu 18也正常。
我平时个人机器使用archlinux多少会有软件太新的问题,另一台机器是debian 11,没想到编译也是各种问题。后面翻烂了搜索引擎,发现多半是gawk版本过高(tina要求gawk5以下),想着就算降级了gawk可能也会有其他问题,就决定做个docker镜像来处理,目前在archlinux下面正常编译D1s-mq的tina镜像。
Dockerfile如下:

From ubuntu:18.04

WORKDIR /data
RUN dpkg --add-architecture i386 &&  apt-get update && apt-get install -y gawk make git gcc g++ sudo zlib1g-dev libssl1.0-dev python2.7 rsync unzip wget libncurses5-dev busybox lib32ncurses5 lib32z1 lib32stdc++6
RUN useradd -r -u 1000 -U tina && echo "tina ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && echo "source /data/build/envsetup.sh" >> /etc/bash.bashrc
USER tina
CMD /bin/bash

如果是用过docker的朋友很容易理解,就是

  1. 使用Ubuntu 18.04做基础镜像

  2. 工作目录 /data 是挂载的tina的根路径

  3. 使用uid为1000的用户

  4. 默认bash自动加载 build/envsetup.sh的环境变量

下面是针对不怎么用docker的朋友:
第一步:怎么安装docker就自行搜索吧
第二步:确定你用户的uid,通常情况下如果只有一个用户是1000(这里不使用root操作,有些软件也限制了root操作),可以通过命令id来查看。如果不是1000就修改Dockerfile第五行的部分。接下来构建镜像

bash:/$ docker build -t tina:v1 - < Dockerfile

第三步:根据镜像创建一个容器,挂载你的tina目录,其中path-to-tina-root替换成你tina的位置,记得是绝对路径。

bash:/$ docker run -it --name tina -v /path-to-tina-root:/data tina:v1

其实这一步你就可以正常使用了,lunch然后make就可以喝茶去了。
接下来是后面如何使用,容器已经建立好了,以后可以通过下面的命令进入环境:

bash:/$ docker start -i tina

需要注意的事: 这个镜像目前我只是编译D1s-mq的环境,目前正常。编译中可能缺少软件,可以通过 sudo apt install xxx 进行安装,和Ubuntu操作并没有区别。
顺便把Dockerfile打包上传上来骗一点积分。tina-docker.zip

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn