简介
对于C++和python混合工程,由于需要支持多个操作系统,需要在centos7的devtoolset7编译工具中执行。所以如果是非centos7的系统。建议通过容器进行构建。下面就介绍这类容器制作。
容器Dockerfile
Dockerfile是基于基准的centos7镜像系统按照devtoolset7工具编写
FROM adoptopenjdk/centos7_build_image
USER root
WORKDIR /tmp
COPY ./python_install.sh ./
RUN yum install -y centos-release-scl-rh
RUN yum install -y devtoolset-7
RUN yum install -y libffi-devel
RUN yum install -y patch
RUN scl enable devtoolset-7 bash
RUN cd /tmp && \
bash -x ./python_install.sh
RUN rm -rf /tmp/*
WORKDIR /root/
构建镜像
- 执行如下命令,构建镜像.
docker build -t centos7-devtoolset-7 ./
创建容器
docker run -v /home:/home -d -it --privileged centos7-devtoolset-7:v1.1 bash -c "while true;do echo hello world; sleep 1;done" --net=host
运行容器
进入容器。执行scl 使能devtoolset-7工具
root@ubuntu:/home/lcm/tool/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e19fd7c863b centos7-devtoolset-7 "bash -c 'while true…" 5 minutes ago Up 5 minutes bold_chebyshev
root@ubuntu:/home/lcm/tool/docker# docker exec -it --user root 6e19fd7c863b bash
[root@6e19fd7c863b /]# scl enable devtoolset-7 bash
[root@6e19fd7c863b /]# which gcc
/opt/rh/devtoolset-7/root/usr/bin/gcc
说明:
本程序编译平台支持aarch64、x86_64 2个平台编译