使用docker来构建嵌入式开发环境

我目前使用的一套嵌入式开发SDK是在ubuntu 14.04上构建的, 对于较新的ubuntu发行版或其他linux发行版是不能兼容的.
比如目前我使用的是Fedora 25作为自己的系统, 那么要编译SDK会发生错误. 主要是libtools, autoconf等工具的兼容性问题. 为了解决这个问题可以使用docker来构建一套基于ubuntu14.04文件系统的编译系统, 从而实现在Fedora 25上编译SDK.

首先贴上自己的Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# rsdk builder docker
# creater by gngshn
# Jan 20 2017
FROM ubuntu:14.04
ENV TERM=xterm
RUN echo "dash dash/sh boolean false" | debconf-set-selections \
&& dpkg-reconfigure -p critical dash \
&& apt-get update \
&& apt-get install -y bc python dpkg lzma pkg-config libncurses5-dev \
autoconf automake cmake libtool gettext texinfo gawk \
&& dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install -y gcc-multilib lib32z1-dev lib32ncurses5-dev \
&& apt-get clean \
&& groupadd -g 1000 gngshn \
&& useradd -u 1000 -g 1000 -G sudo -m gngshn \
&& mkdir /home/gngshn/ipcam \
&& chown gngshn:gngshn /home/gngshn/ipcam \
&& echo "root:xx" | chpasswd \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
USER gngshn
WORKDIR /home/gngshn
ENV TERM=xterm-256color \
TERMINFO=/lib/terminfo

在Dockerfile中需要安装的包都是在ubuntu 14.04 docker中根据需要一步一步安装, 并最终确定需要的安装的所有的包.
在上面的Dockerfile目录下执行sudo docker build -t ipcam_build ., docker就会从docker.io上下载ubuntu 14.04(也可以配置一些国内的docker加速器加速), 然后开始一层一层构建整个开发环境
ipcam_build构建完成后, 执行sudo docker run -it --name ipcam_build -v ~/ipcam:/home/gngshn/ipcam ipcam_build, 就可以进入到本开发环境的命令行了, 同时在docker 用户目录的ipcam下挂载了宿主机上的SDK(宿主机SDK的目录在~/ipcam).
后续就可以在docker中直接编译SDK了.
在docker命令行下按Ctrl+D就退出docker了, 当需要再次进入SDK编译环境时执行sudo docker start -ai ipcam_build就可以了.
对于其他的嵌入式开发环境配置也是类似的. 这里就是一个简单的引导.