-
Ray Garcia authoredRay Garcia authored
Containerfile 1.68 KiB
FROM condaforge/miniforge3 as pipbuild
RUN mamba install -y cxx-compiler fortran-compiler h5py cftime 'numpy<2.0' cffi pycparser
WORKDIR /work
COPY setup.py /work/
COPY src /work/src
COPY include /work/include
COPY himawari /work/himawari
COPY vendor /work/vendor
COPY ci /work/ci
RUN cd /work \
&& pip3 wheel . \
&& ln -s himawari*.whl pyhimawari.whl
RUN cd /work \
&& pip install himawari*.whl \
&& python3 -c 'import himawari.HimawariScene as hsd'
FROM condaforge/miniforge3 as makebuild
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
RUN apt-get update \
&& apt-get install -y build-essential xxd gfortran libnetcdf-c++4-dev libnetcdf-dev libnetcdff-dev netcdf-bin python3 python3-pycparser
COPY --from=pipbuild /work /work
RUN cd /work/src \
&& make
FROM condaforge/miniforge3 as pydeploy
RUN mamba install -y netCDF4 h5py cftime 'numpy<2.0' cffi pycparser satpy
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
RUN apt-get update && apt-get install -y libgfortran5 rsync openssh-client netcdf-bin libnetcdf-c++4-dev
RUN pip3 install pyPublicDecompWT satpy
RUN python3 -c 'import satpy, pyPublicDecompWT, netCDF4'
# see 2024-12 above
COPY --from=pipbuild /work/himawari*.whl /opt/python/
COPY --from=makebuild /work/himawari /opt/python/himawari
COPY --from=makebuild /work/src/*.exe /usr/local/bin/
COPY --from=makebuild /work/src/libHimawari.so /usr/local/lib/
COPY --from=makebuild /work/ci /opt/ci
COPY --from=makebuild /work/include/* /usr/local/include/
COPY --from=makebuild /work/src/libHimawari.a /usr/local/lib/
# RUN ln /usr/local/lib/libHimawari.so /opt/python/himawari/
RUN ldconfig -v
ENV PYTHONPATH=/opt/python
ENV PATH=$PATH:/opt/ci
RUN python3 -c 'import himawari.HimawariScene as hsd'