|
1 | 1 | # kaggle/julia dockerfile
|
2 | 2 |
|
3 |
| -FROM ubuntu:16.04 |
4 |
| - |
| 3 | +FROM julia:1.0.1 |
5 | 4 |
|
6 | 5 | ADD package_installs.jl /tmp/package_installs.jl
|
| 6 | +ADD test_build.jl /tmp/test_build.jl |
| 7 | + |
| 8 | +RUN apt-get update && \ |
| 9 | + apt-get install -y build-essential gettext git hdf5-tools libcairo2 libpango1.0-0 python3 python3-dev python3-pip |
| 10 | + |
| 11 | +# Pycall |
| 12 | +ENV PYTHON /usr/bin/python3 |
7 | 13 |
|
8 |
| -RUN apt-get update && \ |
9 |
| - apt-get install git software-properties-common curl wget libcairo2 libpango1.0-0 -y && \ |
10 |
| - add-apt-repository ppa:staticfloat/julia-deps -y && \ |
11 |
| - apt-get update -y && \ |
12 |
| - apt-get install -y libpcre3-dev build-essential && \ |
13 |
| - apt-get install -y gettext hdf5-tools && \ |
14 |
| - apt-get install -y gfortran python && \ |
15 |
| - apt-get install -y m4 cmake libssl-dev && \ |
16 |
| - cd /usr/local/src && git clone https://github.com/JuliaLang/julia.git && \ |
17 |
| - cd julia && git checkout v0.6.2 && \ |
18 |
| - # Use generic instruction set; see https://github.com/JuliaLang/julia/pull/6220 |
19 |
| - # and https://groups.google.com/forum/#!topic/julia-dev/Eqp0GhZWxME |
20 |
| - echo "JULIA_CPU_TARGET=core2" > Make.user && \ |
21 |
| - echo "OPENBLAS_TARGET_ARCH=NEHALEM" > Make.user && \ |
22 |
| - make -j 4 julia-deps && make -j 4 && make install && \ |
23 |
| - ln -s /usr/local/src/julia/julia /usr/local/bin/julia |
| 14 | +# Conda |
| 15 | +ENV CONDA_JL_VERSION 3 |
24 | 16 |
|
25 |
| -ENV JULIA_PKGDIR /root/.julia/v0.6 |
| 17 | +ENV JULIA_PKGDIR /root/.julia/ |
26 | 18 |
|
27 | 19 | RUN julia /tmp/package_installs.jl
|
28 | 20 |
|
29 | 21 | # IJulia
|
30 |
| -RUN apt-get update && apt-get install -y python3-pip python3-dev && pip3 install jupyter && \ |
31 |
| - julia -e "Pkg.add(\"Nettle\")" && \ |
32 |
| - julia -e "Pkg.add(\"IJulia\")" && \ |
33 |
| - julia -e "Pkg.build(\"IJulia\")" && \ |
34 |
| -# Make sure Jupyter won't try to migrate old settings |
35 |
| - mkdir -p /root/.jupyter/kernels && \ |
36 |
| - cp -r /root/.local/share/jupyter/kernels/julia-0.6 /root/.jupyter/kernels && \ |
37 |
| - touch /root/.jupyter/jupyter_nbconvert_config.py && touch /root/.jupyter/migrated && \ |
38 |
| - julia -e "Base.compilecache(\"IJulia\")" && \ |
39 |
| - julia -e "Base.compilecache(\"ZMQ\")" && \ |
40 |
| - julia -e "Base.compilecache(\"Nettle\")" |
| 22 | +RUN pip3 install jupyter && \ |
| 23 | + julia -e "using Pkg;Pkg.add(\"IJulia\")" && \ |
| 24 | + # Make sure Jupyter won't try to migrate old settings |
| 25 | + mkdir -p /root/.jupyter/kernels && \ |
| 26 | + cp -r /root/.local/share/jupyter/kernels/julia-1.0 /root/.jupyter/kernels && \ |
| 27 | + touch /root/.jupyter/jupyter_nbconvert_config.py && touch /root/.jupyter/migrated |
| 28 | + |
| 29 | +# TensorFlow |
| 30 | +RUN pip3 install tensorflow && \ |
| 31 | + julia -e "using Pkg;Pkg.add(\"TensorFlow\")" |
| 32 | + |
| 33 | +RUN julia -e "using Pkg;Pkg.status()" |
| 34 | + |
| 35 | +RUN julia /tmp/test_build.jl |
41 | 36 |
|
42 |
| -RUN julia -e "Base.compilecache(\"BinDeps\")" && \ |
43 |
| - julia -e "Base.compilecache(\"Cairo\")" && \ |
44 |
| - julia -e "Base.compilecache(\"Calculus\")" && \ |
45 |
| - julia -e "Base.compilecache(\"Clustering\")" && \ |
46 |
| - julia -e "Base.compilecache(\"Compose\")" && \ |
47 |
| - julia -e "Base.compilecache(\"DataArrays\")" && \ |
48 |
| - julia -e "Base.compilecache(\"DataFrames\")" && \ |
49 |
| - julia -e "Base.compilecache(\"DataFramesMeta\")" && \ |
50 |
| - julia -e "Base.compilecache(\"Dates\")" && \ |
51 |
| - julia -e "Base.compilecache(\"DecisionTree\")" && \ |
52 |
| - julia -e "Base.compilecache(\"Distributions\")" && \ |
53 |
| - julia -e "Base.compilecache(\"Distances\")" && \ |
54 |
| - julia -e "Base.compilecache(\"GLM\")" && \ |
55 |
| - julia -e "Base.compilecache(\"HDF5\")" && \ |
56 |
| - julia -e "Base.compilecache(\"HypothesisTests\")" && \ |
57 |
| - julia -e "Base.compilecache(\"JSON\")" && \ |
58 |
| - julia -e "Base.compilecache(\"KernelDensity\")" && \ |
59 |
| - julia -e "Base.compilecache(\"Loess\")" && \ |
60 |
| - #julia -e "Base.compilecache(\"Lora\")" && \ |
61 |
| - julia -e "Base.compilecache(\"MLBase\")" && \ |
62 |
| - julia -e "Base.compilecache(\"MultivariateStats\")" && \ |
63 |
| - julia -e "Base.compilecache(\"NMF\")" && \ |
64 |
| - julia -e "Base.compilecache(\"Optim\")" && \ |
65 |
| - julia -e "Base.compilecache(\"PDMats\")" && \ |
66 |
| - julia -e "Base.compilecache(\"RDatasets\")" && \ |
67 |
| - julia -e "Base.compilecache(\"SQLite\")" && \ |
68 |
| - julia -e "Base.compilecache(\"StatsBase\")" && \ |
69 |
| - julia -e "Base.compilecache(\"TextAnalysis\")" && \ |
70 |
| - julia -e "Base.compilecache(\"TimeSeries\")" && \ |
71 |
| - julia -e "Base.compilecache(\"ZipFile\")" && \ |
72 |
| - julia -e "Base.compilecache(\"Gadfly\")" && \ |
73 |
| - julia -e "Base.compilecache(\"MLBase\")" && \ |
74 |
| - julia -e "Base.compilecache(\"Clustering\")" && \ |
| 37 | +RUN julia -e "Base.compilecache(Base.identify_package(\"BinDeps\"))" && \ |
| 38 | + julia -e "Base.compilecache(Base.identify_package(\"Cairo\"))" && \ |
| 39 | + julia -e "Base.compilecache(Base.identify_package(\"Calculus\"))" && \ |
| 40 | + julia -e "Base.compilecache(Base.identify_package(\"Clustering\"))" && \ |
| 41 | + julia -e "Base.compilecache(Base.identify_package(\"Compose\"))" && \ |
| 42 | + # https://github.com/JuliaStats/DataArrays.jl/pull/304 |
| 43 | + # julia -e "Base.compilecache(Base.identify_package(\"DataArrays\"))" && \ |
| 44 | + julia -e "Base.compilecache(Base.identify_package(\"DataFrames\"))" && \ |
| 45 | + julia -e "Base.compilecache(Base.identify_package(\"DataFramesMeta\"))" && \ |
| 46 | + julia -e "Base.compilecache(Base.identify_package(\"DecisionTree\"))" && \ |
| 47 | + julia -e "Base.compilecache(Base.identify_package(\"Distributions\"))" && \ |
| 48 | + julia -e "Base.compilecache(Base.identify_package(\"Distances\"))" && \ |
| 49 | + # https://github.com/GiovineItalia/Gadfly.jl/pull/1189 waint for new release |
| 50 | + # julia -e "Base.compilecache(Base.identify_package(\"Gadfly\"))" && \ |
| 51 | + julia -e "Base.compilecache(Base.identify_package(\"GLM\"))" && \ |
| 52 | + julia -e "Base.compilecache(Base.identify_package(\"HDF5\"))" && \ |
| 53 | + julia -e "Base.compilecache(Base.identify_package(\"HypothesisTests\"))" && \ |
| 54 | + julia -e "Base.compilecache(Base.identify_package(\"IJulia\"))" && \ |
| 55 | + julia -e "Base.compilecache(Base.identify_package(\"JSON\"))" && \ |
| 56 | + julia -e "Base.compilecache(Base.identify_package(\"KernelDensity\"))" && \ |
| 57 | + julia -e "Base.compilecache(Base.identify_package(\"Loess\"))" && \ |
| 58 | + julia -e "Base.compilecache(Base.identify_package(\"MLBase\"))" && \ |
| 59 | + julia -e "Base.compilecache(Base.identify_package(\"MultivariateStats\"))" && \ |
| 60 | + # https://github.com/JuliaStats/NMF.jl/pull/24 |
| 61 | + # julia -e "Base.compilecache(Base.identify_package(\"NMF\"))" && \ |
| 62 | + julia -e "Base.compilecache(Base.identify_package(\"Optim\"))" && \ |
| 63 | + julia -e "Base.compilecache(Base.identify_package(\"PDMats\"))" && \ |
| 64 | + julia -e "Base.compilecache(Base.identify_package(\"RDatasets\"))" && \ |
| 65 | + julia -e "Base.compilecache(Base.identify_package(\"SQLite\"))" && \ |
| 66 | + julia -e "Base.compilecache(Base.identify_package(\"StatsBase\"))" && \ |
| 67 | + julia -e "Base.compilecache(Base.identify_package(\"TensorFlow\"))" && \ |
| 68 | + julia -e "Base.compilecache(Base.identify_package(\"TextAnalysis\"))" && \ |
| 69 | + julia -e "Base.compilecache(Base.identify_package(\"TimeSeries\"))" && \ |
| 70 | + julia -e "Base.compilecache(Base.identify_package(\"Turing\"))" && \ |
| 71 | + julia -e "Base.compilecache(Base.identify_package(\"ZipFile\"))" && \ |
| 72 | + julia -e "Base.compilecache(Base.identify_package(\"ZMQ\"))" && \ |
75 | 73 | julia -e "using IJulia"
|
76 | 74 |
|
77 | 75 | CMD ["julia"]
|
0 commit comments