2025-07-23 –, Lawrence Room 120 - REPL Main Stage
A great Dockerfile for Julia should:
1. Contain a depot with a precompiled Manifest.
2. Rebuild fast and efficiently - only changed code should be recompiled.
3. Be as light as possible with no unnecessary files in its layers.
In this talk I will present some clever ways on how to abuse Dockerfile RUN --mount
to achieve fully cached rebuilds. I will also share tips on how to manage your depot and solve other common issues a Julia user might experience when writing an advanced Dockerfile.
Containerization is considered a basic skill in a developer toolbox, so packaging up Julia code into images will definitely fall into a Julia developer's task list sooner than later. Writing a naive Dockerfile for Julia is simple, but writing a great one is not a trivial task.
I've written several Dockerfiles for various Julia projects and I will try to share all the tricks on how to make your Dockerfile better for both development and production use cases.
Please note this talk assumes at least a basic to intermediate understanding of Docker and building images. Introductory concepts will not be covered as part of the talk.
Link to repository containing examples https://github.com/krynju/docker_julia_juliacon2025
Software Engineer at JuliaHub, Cluster Team
I've been involved with Julia since 2018. Currently working on the core JuliaHub platform mostly around backend and cluster related capabilities. I graduated from Warsaw University of Technology with a M.Sc. in Computer Science and B.Sc. in Automatic Control and Robotics.