diff --git a/Dockerfile b/Dockerfile index decf08c..2e93d9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,37 @@ -# 编译平台 +# 导入代码库镜像 视包含的代码库多少编译后的镜像可包含部分至全部GCTL代码库内容 FROM gctl:2.0 AS gctl_library +FROM gctl_mesh:2.0 AS gctl_mesh_library +FROM gctl_optimization:2.0 AS gctl_optimization_library +FROM gctl_ai:2.0 AS gctl_ai_library +FROM gctl_potential:2.0 AS gctl_potential_library +FROM gctl_seismic:2.0 AS gctl_seismic_library +FROM gctl_elecmag:2.0 AS gctl_elecmag_library +# 编译平台 FROM ubuntu:20.04 AS builder +# 从代码库镜像中复制库文件和头文件 +COPY --from=gctl_library /usr/local/lib /usr/local/lib +COPY --from=gctl_library /usr/local/include /usr/local/include +COPY --from=gctl_mesh_library /usr/local/lib /usr/local/lib +COPY --from=gctl_mesh_library /usr/local/include /usr/local/include +COPY --from=gctl_optimization_library /usr/local/lib /usr/local/lib +COPY --from=gctl_optimization_library /usr/local/include /usr/local/include +COPY --from=gctl_ai_library /usr/local/lib /usr/local/lib +COPY --from=gctl_ai_library /usr/local/include /usr/local/include +COPY --from=gctl_potential_library /usr/local/lib /usr/local/lib +COPY --from=gctl_potential_library /usr/local/include /usr/local/include +COPY --from=gctl_seismic_library /usr/local/lib /usr/local/lib +COPY --from=gctl_seismic_library /usr/local/include /usr/local/include +COPY --from=gctl_elecmag_library /usr/local/lib /usr/local/lib +COPY --from=gctl_elecmag_library /usr/local/include /usr/local/include + # 安装编译工具 RUN apt-get update && apt-get install -y g++ make cmake # 安装依赖库 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 install -y pkg-config # 创建工作目录 WORKDIR /app -# 从代码库镜像中复制库文件和头文件 -COPY --from=gctl_library /usr/local/lib /usr/local/lib -COPY --from=gctl_library /usr/local/include /usr/local/include # 编译依赖库 COPY dep/editline-1.17.1 /app/dep/editline @@ -36,7 +57,22 @@ COPY triangle2gmsh /app/triangle2gmsh COPY txtinfo /app/txtinfo COPY xyz2nc /app/xyz2nc COPY xyz2sph /app/xyz2sph + +COPY 2minfo /app/2minfo + +COPY slbsi /app/slbsi +COPY lbsi /app/lbsi +COPY lki /app/lki +COPY levy_planner /app/levy_planner + +COPY tetgm /app/tetgm + COPY dsviewer /app/dsviewer + +COPY gridmanager /app/gridmanager + +COPY gridmanager-potential /app/gridmanager-potential + COPY CMakeLists.txt . COPY config.h.in . # 编译gctl动态库 @@ -47,6 +83,7 @@ FROM ubuntu:20.04 # 安装运行时必要依赖 RUN apt-get update && apt-get install -y libstdc++6 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 # 从构建阶段复制编译后的库和头文件 COPY --from=builder /usr/local/lib /usr/local/lib COPY --from=builder /usr/local/include /usr/local/include