=============================================== ``irfpy.aspera`` developement version on Docker =============================================== Using docker for developing and testing ``irfpy`` is an interesting approach. Clone from gitlab ----------------- One needs to get the full tree from Gitlab. Contact Futaana for details. Then clone from gitlab. .. code-block:: sh git clone git@gitlab.irf.se:irfpy/aspera cd aspera git checkout develop git clone git@gitlab.irf.se:irfpy/util irfpy-deps/irfpy.util git clone git@gitlab.irf.se:irfpy/planets irfpy-deps/irfpy.planets git clone git@gitlab.irf.se:irfpy/spice irfpy-deps/irfpy.spice Create an image --------------- To create an image, you can use the command .. code-block:: sh docker build -t irfpy/aspera-dev -f bin/Dockerfile.dev . Running ipython --------------- To run the container, you may need to optimize some parameters. - ``data_location``: The location where irfpy dataset is stored. - ``local_work_directory``: The local working directory. .. code-block:: sh docker run -it \ -v <data_location>:/Volumes/scidata/data \ -v <local_work_directory>:/notebooks irfpy/aspera-dev \ ipython For example, you may use .. code-block:: sh docker run -it --rm \ -v /Volumes/scidata256/data:/Volumes/scidata/data \ -v $(pwd):/notebooks irfpy/aspera-dev \ ipython Then ipython is launched. .. code-block:: python In [1]: import irfpy.aspera In [2]: print(irfpy.aspera.__version__) 4.3.15a1 Start Jupyter Notebook ---------------------- To run the Jupyter notebook, one should also specify the local port to be opened. - local_port: The listening port for Jupyter. .. code-block:: sh docker run --rm -it \ -p <local_port>:8888 \ -v <data_location>:/Volumes/scidata/data \ -v <local_work_directory>:/notebooks irfpy/aspera \ bash -c "/opt/conda/bin/jupyter notebook --notebook-dir=/notebooks --ip=0.0.0.0 - -port=8888 --no-browser --allow-root" For example, .. code-block:: sh docker run --rm -it \ -p 8888:8888 \ -v /Volumes/scidata256/data:/Volumes/scidata/data \ -v $(pwd):/notebooks irfpy/aspera \ bash -c "/opt/conda/bin/jupyter notebook --notebook-dir=/notebooks --ip=0.0.0.0 - -port=8888 --no-browser --allow-root" The prompt shows the token as follows. Connect to the server now. :: http://127.0.0.1:8888/?token=8807e4ea827ec6183be8c9c609922b1aff9898aaf0be8f3e Token is changed everytime. Unit test ========= For the development image, the unittest can be run. .. code-block:: sh docker run --rm -it -v /Volumes/scidata/data:/Volumes/scidata/data irfpy/aspera-dev \ bash -c "cd /tmp && /opt/conda/bin/nosetests -c .nose.cfg"