Official Docker Hub Julia Images?

Is one of these two docker hub images an official base for the Julia language?

https://hub.docker.com/r/_/julia/
https://hub.docker.com/r/julialang/julia/

1 Like

You may have to elaborate on “official base”?
julialang/julia has a few different older versions

Julia 0.3.12, Julia 0.4.7, Julia 0.5.0 and Julia 0.6.0-dev. Julia v0.4.7 is the default.

_/julia is on v1.0.2, and maintained by the Docker community, probably use this one unless you need an older version

I guess the question is, which one should I be using?

Based on your responce it seems that _/julia is the most appropriate?

2 Likes

imho:
The (Docker) Official Julia images ( Debian ) is perfect for the average users.

  • frequent updates
  • minimal size ( so you don’t find an : R / Python / Jupyter integration )
  • created from official Julia binary image ( https://julialang.org/downloads/ ) ; patched LLVM !!!
  • Multiple Julia versions, good for testing (`0.7.0’,‘1.0.0’,‘1.0.1’,‘1.0.2’)

But need some customization ( gcc , wget, curl , + some julia packages )
for example - in my case:

FROM julia:1.0.2

RUN set -eux; \
	apt-get update; \
	apt-get install -y --no-install-recommends \
	ca-certificates \
        autoconf \
        build-essential \
        git \
        mc \
        nano \
		curl \
	; \
	rm -rf /var/lib/apt/lists/*

RUN julia -O3 -e 'using Pkg;Pkg.REPLMode.pkgstr("add CSV   ;precompile");using CSV'
RUN julia -O3 -e 'using Pkg;Pkg.REPLMode.pkgstr("add SQLite;precompile");using SQLite'
RUN julia -O3 -e 'using Pkg;Pkg.REPLMode.pkgstr("add XLSX  ;precompile");using XLSX'

WORKDIR /projects

5 Likes

Are there any images for master, or close, eg generated daily or weekly?

imho:

  • no official “master” exist. ( according to my knowledge )
  • it is easy to create for local usage ( see my example )
  • (security) as I see - no GPG/md5/sha256 file for Nightly builds ; so it is better for build your own.
FROM debian
# Install latest Julia nightly builds.
# ---
# save this file as a "Dockerfile_julialatest"
# build:   docker build --no-cache -t julialatest -f Dockerfile_julialatest  .
# run  :   docker run   -it julialatest
RUN set -eux; apt-get update;	apt-get install -y --no-install-recommends \
        curl tar ca-certificates ; \
	rm -rf /var/lib/apt/lists/*
ENV JULIA_PATH=/usr/local/julia
ENV PATH $JULIA_PATH/bin:$PATH
ENV JULIA_DOWNLOAD_URL=https://julialangnightlies-s3.julialang.org/bin/linux/x64/julia-latest-linux64.tar.gz
RUN mkdir ${JULIA_PATH} && \
    cd /tmp && \
    curl -fL -o julia.tar.gz ${JULIA_DOWNLOAD_URL} && \
    tar xzf julia.tar.gz  -C ${JULIA_PATH} --strip-components=1 && \
    rm /tmp/julia.tar.gz && \
    julia -e "using InteractiveUtils; versioninfo()" 
# example:  add & test CSV package
# RUN julia -e 'using Pkg; Pkg.REPLMode.pkgstr("add CSV;test CSV;precompile;st"); using CSV'
CMD ["julia"]
3 Likes

Thanks, my intention was to use it on Gitlab. I can easily roll my own, but then I would have to keep updating it.

1 Like

It’s nice that Travis CI gives an option for testing against nightly julia. Is it possible to host a nightly docker image so that other CI services could also tests against whatever Travis is using?

AFAIK the Travis script just downloads the relevant binary, see

There are various install scripts you can use, eg

1 Like