This commit is contained in:
张壹 2025-08-18 11:31:28 +08:00
parent 2d2b39d5c1
commit cbe56092a2

View File

@ -1,11 +1,11 @@
# 导入代码库镜像 视包含的代码库多少编译后的镜像可包含部分至全部GCTL代码库内容 # 导入代码库镜像 视包含的代码库多少编译后的镜像可包含部分至全部GCTL代码库内容
FROM gctl:2.0.9 AS gctl_library FROM gctl:2.1 AS gctl_library
FROM gctl_mesh:2.0.9 AS gctl_mesh_library FROM gctl_mesh:2.1 AS gctl_mesh_library
FROM gctl_optimization:2.0.9 AS gctl_optimization_library FROM gctl_optimization:2.1 AS gctl_optimization_library
FROM gctl_ai:2.0.9 AS gctl_ai_library FROM gctl_ai:2.1 AS gctl_ai_library
FROM gctl_potential:2.0.9 AS gctl_potential_library FROM gctl_potential:2.1 AS gctl_potential_library
FROM gctl_seismic:2.0.9 AS gctl_seismic_library FROM gctl_seismic:2.1 AS gctl_seismic_library
FROM gctl_elecmag:2.0.9 AS gctl_elecmag_library FROM gctl_elecmag:2.1 AS gctl_elecmag_library
# 编译平台 # 编译平台
FROM ubuntu:20.04 AS builder FROM ubuntu:20.04 AS builder
# 从代码库镜像中复制库文件和头文件 # 从代码库镜像中复制库文件和头文件
@ -24,13 +24,28 @@ COPY --from=gctl_ai_library /usr/local/include /usr/local/include
COPY --from=gctl_library /usr/local/lib /usr/local/lib COPY --from=gctl_library /usr/local/lib /usr/local/lib
COPY --from=gctl_library /usr/local/include /usr/local/include COPY --from=gctl_library /usr/local/include /usr/local/include
# 安装编译工具 # 避免交互提示
RUN apt-get update && apt-get install -y g++ make cmake ENV DEBIAN_FRONTEND=noninteractive
# 安装依赖库
RUN apt-get install -y --no-install-recommends libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev # 安装编译工具和依赖
RUN apt-get install -y --no-install-recommends libopenblas-dev libeigen3-dev RUN apt-get update && apt-get install -y --no-install-recommends \
RUN apt-get install -y pkg-config g++ \
RUN apt-get install -y autoconf automake make \
cmake \
libfftw3-dev \
libnetcdf-dev \
gmt \
libgmt-dev \
libgsl-dev \
libncurses-dev \
libopenblas-dev \
liblapacke-dev \
libeigen3-dev \
pkg-config \
autoconf \
automake \
&& rm -rf /var/lib/apt/lists/*
# 创建工作目录 # 创建工作目录
WORKDIR /app WORKDIR /app
@ -83,18 +98,26 @@ RUN mkdir build && cd build && cmake .. && make && make install
FROM ubuntu:20.04 FROM ubuntu:20.04
# 设置非交互式安装 # 设置非交互式安装
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
# 安装运行时必要依赖 # 安装运行时必要依赖
RUN apt-get update && apt-get install -y g++ make cmake RUN apt-get update && apt-get install -y --no-install-recommends \
RUN apt-get install -y --no-install-recommends libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev g++ make cmake \
RUN apt-get install -y --no-install-recommends libopenblas-dev libeigen3-dev libfftw3-dev \
RUN apt-get install -y gnuplot libnetcdf-dev \
RUN apt-get install -y pkg-config gmt libgmt-dev \
RUN apt-get install -y autoconf automake libgsl-dev \
RUN apt-get install -y ghostscript libncurses-dev \
libopenblas-dev liblapacke-dev libeigen3-dev \
gnuplot \
pkg-config \
autoconf automake \
ghostscript \
&& rm -rf /var/lib/apt/lists/*
# 从构建阶段复制编译后的库和头文件 # 从构建阶段复制编译后的库和头文件
COPY --from=builder /usr/local/lib /usr/local/lib COPY --from=builder /usr/local/lib /usr/local/lib
COPY --from=builder /usr/local/include /usr/local/include COPY --from=builder /usr/local/include /usr/local/include
COPY --from=builder /usr/local/sbin /usr/local/sbin COPY --from=builder /usr/local/sbin /usr/local/sbin
# 设置可执行文件列表 # 设置可执行文件列表
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:/usr/local/lib
ENV PATH=$PATH:/usr/local/sbin ENV PATH=${PATH:-}:/usr/local/sbin