使用Docker构建不同平台编译环境

摘要

本文介绍了如何使用Docker构建不同平台的编译环境,以解决跨平台编译问题。作者以Ubuntu系统为例,通过编写Dockerfile创建适配不同版本的编译环境,并详细说明了镜像构建和容器运行的步骤。文章还提供了自动化构建脚本的示例,展示了如何高效地在Docker中完成跨平台编译任务。



问题

需要构建不同平台的bin,但是本地电脑是ubuntu18的系统,怎么构建ubuntu16可用的bin呢?

方案

使用docker, 是下是qt项目举例

编写Dockerfile

1
2
3
FROM daocloud.io/library/ubuntu:16.04
VOLUME /nyuv/
RUN apt update && apt install -y make cmake gcc build-essential qt5-default

可以再更自动化一点

1
2
WORKDIR /nyuv/
CMD ["source", "build.sh"]

在build.sh里面编写build脚本即可

构建镜像

1
docker build -t nyuv .

挂载本地目录,构建容器并进入

1
docker run -it -v /home/xx/bin/nyuv/:/nyuv/ nyuv /bin/bash

至此,剩下操作如同本地编译一样