https://github.com/caiorss/julia-box-docker
Docker that provides a development environment for Julia language, Octave, Python, R (Rlang) with a Jupyter Notebook; Jupyter QtConsole and so on.
https://github.com/caiorss/julia-box-docker
data datascience deveops docker julia jupyter octave python rlang scientific
Last synced: about 2 months ago
JSON representation
Docker that provides a development environment for Julia language, Octave, Python, R (Rlang) with a Jupyter Notebook; Jupyter QtConsole and so on.
- Host: GitHub
- URL: https://github.com/caiorss/julia-box-docker
- Owner: caiorss
- Created: 2020-01-25T15:47:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-03T13:33:35.000Z (over 6 years ago)
- Last Synced: 2025-02-22T03:14:15.889Z (over 1 year ago)
- Topics: data, datascience, deveops, docker, julia, jupyter, octave, python, rlang, scientific
- Language: Jupyter Notebook
- Size: 45.9 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
* Julia-Box-Shell
** Overview
Docker for Julia language with X11 (User Interface) support and many
pre-installed packages and wrapper script for running the docker.
*Benefit*
+ A ready-to-use Julia development environment, with zero
configuration effort required, which can be used from any Linux
distribution or any operating system with Docker support.
+ Standard and reproducible development environment.
*Features*
* Many pre-installed packages for statics, charts, symbolic math
and so on.
* Pre-configured Julia Notebook
+ Jupyter Notebook for Julia.
* X11 Support
+ Allows to run graphical windows and GUIs (Graphical User
Interfaces) such as X11 widgets, PyPlot charts, Plots chart
and so on.
* Wrapper Unix shell script which simplifies running the docker and
mapping the current directory to the docker container.
*Pre-installed packages*
* Interfaces
* IJulia => Julia Notebook
* Plot libraries
+ Plots
+ PyPlot
+ StatsPlot
* Statistcs:
+ Distributions => Statistical Distributions
+ DataFrame
+ DataStreams
* Standard Format Parsers
+ JSON
+ CSV
+ XLSX - Excel Parser
* Symbolic Math
+ SymPy
* Literate Programming
* Weave
** Building Instructions
STEP 1: Build the docker.
#+BEGIN_SRC sh
$ make build
#+END_SRC
STEP 2: Test the docker with. The command will run a Julia shell.
#+BEGIN_SRC python
$ make run
sh ./julia-box-shell.sh
non-network local connections being added to access control list
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.3.1 (2019-12-30)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> 0:2:10 .|> exp(x)
ERROR: UndefVarError: x not defined
Stacktrace:
[1] top-level scope at REPL[1]:1
julia> 0:2:10 .|> exp
6-element Array{Float64,1}:
1.0
7.38905609893065
54.598150033144236
403.4287934927351
2980.9579870417283
22026.465794806718
#+END_SRC
STEP 3: Install the wrapper script.
+ Just copy the wrapper script to any directory in $PATH variable
and run $ julia-box-shell.sh
#+BEGIN_SRC sh
mkdir -p ~/bin
chmod +x julia-box-shell.sh
cp julia-box-shell.sh ~/bin
# If the directory ~/bin is not in the PATH variable.
echo "export PATH=~/bin:$PATH" >> ~/.bashrc
#+END_SRC
STEP 4: Run wrapper script and open Julia shell.
#+BEGIN_SRC sh
$ ./julia-box-shell.sh julia
non-network local connections being added to access control list
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.3.1 (2019-12-30)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using SymPy
julia> x = Sym("x")
x
julia> expand((x - 4)^3)
3 2
x - 12⋅x + 48⋅x - 64
julia>
#+END_SRC
** Usage
Once the docker is buitl, the following functionalities can be used:
*Run bash Unix shell*
+ $ ./julia-box-shell.sh sh
+ $ ./julia-box-shell.sh bash
#+BEGIN_SRC sh
$ ./julia-box-shell.sh sh
non-network local connections being added to access control list
eniac@localhost:/work$ whoami
eniac
eniac@localhost:/work$ ls -la
total 40
eniac@localhost:/work$ ls
Dockerfile FIR_design.jl Makefile README.org julia-box-shell.sh script.jl
#+END_SRC
*Run Julia Shell*
+ $ ./julia-box-shell.sh ju
+ $ ./julia-box-shell.sh julia
#+BEGIN_SRC sh
$ ./julia-box-shell.sh julia
non-network local connections being added to access control list
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.3.1 (2019-12-30)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using SymPy
julia> x = Sym("x")
x
julia> expand((x - 4)^3)
3 2
x - 12⋅x + 48⋅x - 64
#+END_SRC
*Run Jupyter Notebook* (IJulia)
Start Jupyter Notebook Daemon
+ $ ./julia-box-shell.sh jupyter start
+ $ ./julia-box-shell.sh ju start
Start Jupyter Notebook Daemon
+ $ ./julia-box-shell.sh jupyter stop
+ $ ./julia-box-shell.sh ju stop
View Log
+ $ ./julia-box-shell.sh jupyter log
+ $ ./julia-box-shell.sh ju log
Then open the URL in the web browser (~http://localhost:8888/?token=333....2e885e597195~)
#+BEGIN_SRC sh
$ ./julia-box-shell.sh jupyter start
non-network local connections being added to access control list
[I 13:58:31.621 NotebookApp] Writing notebook server cookie secret to /home/eniac/.local/share/jupyter/runtime/notebook_cookie_secret
[I 13:58:31.902 NotebookApp] Serving notebooks from local directory: /work
[I 13:58:31.902 NotebookApp] The Jupyter Notebook is running at:
[I 13:58:31.902 NotebookApp] http://localhost:8888/?token=333e54e39f89f685ed35fcf5711e551c64522e885e597195
... ... ... ... ... ...
#+END_SRC