OR-TOOLS CentOS 7 Dockerfile如何给源码编译打镜像
镜像步骤
这里用的镜像Dockerfile是用于在CentOS 7环境下设置和安装开发工具以及构建OR-TOOLS项目。它包含以下步骤:
- 安装基本依赖项和开发工具(如wget、curl、编译器等)。
- 升级到gcc-11,并将其设置为默认编译器。
- 安装CMake 3.23.2和Swig 4.0.2。
- 安装.Net SDK(版本3.1和6.0)。
- 安装Java 8 SDK和Maven。
- 安装Python 3和一些常用的Python库。
- 设置时区为America/Los_Angeles。
接下来,构建OR-TOOLS项目。使用devel
作为基础镜像,并在/root
目录下复制or-tools.snk
文件和设置环境变量。
克隆OR-TOOLS的源代码,并验证git分支和提交哈希是否与预期一致。
然后,创建不同的构建阶段用于构建C++、.Net、Java和Python版本的OR-TOOLS。每个构建阶段都会运行相应的构建命令,并最终生成归档文件。
dockerfile文件
FROM centos:7 AS env
#############
## SETUP ##
#############
# 更新系统和安装基本依赖项和开发工具
RUN yum -y update \
&& yum -y groupinstall 'Development Tools' \
&& yum -y install wget curl pcre-devel openssl redhat-lsb-core pkgconfig autoconf libtool zlib-devel which \
&& yum clean all \
&& rm -rf /var/cache/yum
# 升级到gcc-11并设置为默认编译器
RUN yum -y update \
&& yum -y install centos-release-scl \
&& yum -y install devtoolset-11 \
&& yum clean all \
&& echo "source /opt/rh/devtoolset-11/enable" >> /etc/bashrc
SHELL ["/usr/bin/bash", "--login", "-c"]
ENTRYPOINT ["/usr/bin/bash", "--login", "-c"]
CMD ["/usr/bin/bash", "--login"]
# 安装CMake 3.23.2
RUN ARCH=$(uname -m) \
&& wget -q "https://cmake.org/files/v3.23/cmake-3.23.2-linux-${ARCH}.sh&