python3.9带 C++绑定的基础镜像
FROM ubuntu:20.04
# 设置非交互式环境变量(避免apt安装时提示时区选择)
ENV DEBIAN_FRONTEND=noninteractive
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 安装基础编译工具和依赖
# 添加Python 3.9 PPA并安装依赖
RUN apt-get update && \apt-get install -y software-properties-common && \add-apt-repository ppa:deadsnakes/ppa -y && \apt-get update && \apt-get install -y \build-essential \cmake \wget \git \python3.9 \python3.9-dev \libpython3.9-dev \python3.9-distutils \python3-pip \&& rm -rf /var/lib/apt/lists/*# 确保pip指向Python 3.9
RUN ln -s /usr/bin/python3.9 /usr/local/bin/python && \wget https://bootstrap.pypa.io/get-pip.py && \python get-pip.py && \rm get-pip.py
# 设置Python3.9为默认Python
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1# 下载并编译安装Boost 1.80.0
WORKDIR /tmp
# 修复Boost编译问题
COPY boost_1_80_0.tar.bz2 /tmp/
RUN tar -xjf boost_1_80_0.tar.bz2 && \cd boost_1_80_0 && \./bootstrap.sh --with-python=/usr/bin/python3.9 && \./b2 -j$(nproc) --with-python --with-thread --with-date_time --with-system --with-chrono install && \cd .. && \rm -rf boost_1_80_0*# 创建Python库链接路径(匹配CMake中的设置)
# 修复Python头文件路径问题
RUN mkdir -p /usr/local/python3/lib && \ln -s /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0 /usr/local/python3/lib/libpython3.9.so && \mkdir -p /usr/local/python3/include/python3.9 && \ln -s /usr/include/python3.9 /usr/local/include/python3.9# 设置环境变量(匹配CMake配置)
ENV BOOST_ROOT=/usr/local/boost_1_80_0
ENV PYTHON_LIBRARY=/usr/local/python3/lib
ENV PYTHON_INCLUDE_PATH=/usr/local/python3/include/python3.9
ENV Boost_PYTHON_LIBRARY=python39
ENV PYTHON_INCLUDE_DIR=/usr/local/python3/include/python3.9
ENV CPLUS_INCLUDE_PATH=/usr/include/python3.9:$CPLUS_INCLUDE_PATH
# 设置工作目录
WORKDIR /app
下载地址如下
安装包比较大,自己下好
https://sourceforge.net/projects/boost/files/boost/1.80.0/boost_1_80_0.tar.bz2/download