前两天刚入手的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的朋友很容易理解,就是
使用Ubuntu 18.04做基础镜像
工作目录 /data 是挂载的tina的根路径
使用uid为1000的用户
默认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
离线