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