You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.9 KiB
48 lines
1.9 KiB
# First the base image that the docker is using will be defined |
|
FROM ubuntu:18.04 |
|
# Conda manages our python enviroment |
|
# We need to set some enviroment variables that allow |
|
# our docker to find the installation |
|
ENV PATH="/home/mom5/miniconda3/bin:${PATH}" |
|
ARG PATH="/home/mom5/miniconda3/bin:${PATH}" |
|
# Next we will update the system and install all necessary tools |
|
# such as netCDF (data output of the ocean model) |
|
# openMPI (parallel computing) |
|
# vim (text editor) |
|
# and gcc (compiler) |
|
RUN apt-get update && apt-get install -y git \ |
|
tcsh \ |
|
pkg-config \ |
|
gfortran \ |
|
netcdf-bin \ |
|
libnetcdf-dev \ |
|
libnetcdff-dev \ |
|
openmpi-bin \ |
|
libopenmpi-dev \ |
|
libnetcdff-dev \ |
|
vim \ |
|
wget |
|
# Add a user to the system called mom5 |
|
RUN useradd -ms /bin/bash mom5 |
|
# Copy model code to our virtual docker image and change the ownership to mom5 (user) |
|
COPY --chown=mom5:mom5 MOM_code /home/mom5/MOM_code |
|
# Remove some files that may cause problemes |
|
RUN rm -rf /var/lib/apt/lists/* |
|
# Switch from root to user MOM5 |
|
USER mom5 |
|
# Say that work directory is /home/mom5 |
|
WORKDIR /home/mom5/ |
|
# Change directy to MOM source code and compile the model |
|
RUN cd /home/mom5/MOM_code && ./build |
|
# This might be obsolete |
|
WORKDIR /home/mom5 |
|
# Install conda packaging manager |
|
RUN wget \ |
|
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \ |
|
&& mkdir .conda \ |
|
&& bash Miniconda3-latest-Linux-x86_64.sh -b \ |
|
&& rm -f Miniconda3-latest-Linux-x86_64.sh |
|
# Initialize conda |
|
RUN conda --version && conda init |
|
# Install necessary python packages for for our tasks |
|
RUN conda install -c conda-forge -y pyyaml pandas xarray netcdf4 jupyterlab matplotlib nc-time-axis
|
|
|