# Official Docker Hub Julia Images?

**URL:** <https://discourse.julialang.org/t/official-docker-hub-julia-images/18358>\
**Category:** Tooling\
**Created:** [December 6, 2018, 2:11am UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358 "2018-12-06T02:11:01Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![ccoffrin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ccoffrin/32/400_2.png) [@ccoffrin](https://discourse.julialang.org/u/ccoffrin)\
**Post date:** [December 6, 2018, 2:11am UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/1 "2018-12-06T02:11:01Z")

</div>

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/_/julia/)  
[https://hub.docker.com/r/julialang/julia/](https://hub.docker.com/r/julialang/julia/)

---

<div class="post-metadata">

**Author:** ![y4lu](https://avatars.discourse-cdn.com/v4/letter/y/47e85d/32.png) [@y4lu](https://discourse.julialang.org/u/y4lu)\
**Post date:** [December 6, 2018, 4:08am UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/2 "2018-12-06T04:08:24Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ccoffrin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ccoffrin/32/400_2.png) [@ccoffrin](https://discourse.julialang.org/u/ccoffrin)\
**Post date:** [December 6, 2018, 4:42am UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/3 "2018-12-06T04:42:40Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 6, 2018, 9:53am UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/4 "2018-12-06T09:53:21Z")

</div>

> [@ccoffrin](#):
>
> Based on your responce it seems that `_/julia` is the most appropriate?

**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 ( [Download Julia](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:

```Dockerfile
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

```

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 29, 2018, 1:08pm UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/5 "2018-12-29T13:08:52Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 29, 2018, 5:56pm UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/6 "2018-12-29T17:56:08Z")

</div>

> [@Tamas\_Papp](#):
>
> 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.

```Dockerfile
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"]

```

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 29, 2018, 6:43pm UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/7 "2018-12-29T18:43:56Z")

</div>

> [@ImreSamu](#):
>
> it is easy to create for local usage ( see my example )

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

---

<div class="post-metadata">

**Author:** ![goretkin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goretkin/32/167_2.png) [@goretkin](https://discourse.julialang.org/u/goretkin)\
**Post date:** [February 27, 2020, 11:23pm UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/8 "2020-02-27T23:23:30Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [February 28, 2020, 7:48am UTC](https://discourse.julialang.org/t/official-docker-hub-julia-images/18358/9 "2020-02-28T07:48:42Z")

</div>

AFAIK the Travis script just downloads the relevant binary, see

> <https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/script/julia.rb>

There are various install scripts you can use, eg

> <https://github.com/tpapp/texlive-julia-minimal-docker/blob/master/files/install-julia.sh>
