41 lines
1.4 KiB
Docker
41 lines
1.4 KiB
Docker
# 编译平台
|
|
FROM ubuntu:20.04 AS builder
|
|
# 安装编译工具
|
|
RUN apt-get update && apt-get install -y g++ make cmake
|
|
# 安装依赖库
|
|
RUN apt-get install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev
|
|
# 创建工作目录
|
|
WORKDIR /gctl
|
|
|
|
# 1. 编译安装EEMD
|
|
# 拷贝libeemd相关内容
|
|
COPY dep/libeemd /gctl/dep/libeemd
|
|
# 编译安装libeemd
|
|
RUN mkdir /gctl/dep/libeemd/build && cd /gctl/dep/libeemd/build && cmake .. && make && make install
|
|
|
|
# 2. 编译安装netcdfcxx_legacy
|
|
# 拷贝netcdfcxx_legacy相关内容
|
|
COPY dep/netcdfcxx_legacy /gctl/dep/netcdfcxx_legacy
|
|
# 编译安装netcdfcxx_legacy
|
|
RUN mkdir /gctl/dep/netcdfcxx_legacy/build && cd /gctl/dep/netcdfcxx_legacy/build && cmake .. && make && make install
|
|
|
|
# 3. 拷贝partow模版文件
|
|
COPY dep/partow/include /usr/local/include
|
|
|
|
# 将gctl源代码
|
|
COPY lib /gctl/lib
|
|
COPY CMakeLists.txt .
|
|
COPY config.h.in .
|
|
COPY GCTLConfig.cmake.in .
|
|
# 将CMake配置文件拷贝到系统路径
|
|
COPY dep/cmake /usr/local/lib/cmake
|
|
# 编译gctl动态库
|
|
RUN mkdir build && cd build && cmake .. -DGCTL_DOCKER=ON && make && make install
|
|
|
|
# 运行平台
|
|
FROM ubuntu:20.04
|
|
# 安装运行时必要依赖
|
|
RUN apt-get update && apt-get install -y libstdc++6
|
|
# 从构建阶段复制编译后的库和头文件
|
|
COPY --from=builder /usr/local/lib /usr/local/lib
|
|
COPY --from=builder /usr/local/include /usr/local/include |