beacon-biosignals / julia_pod

k8s native julia development
MIT License
10 stars 3 forks source link

Use Docker mount cache #69

Closed omus closed 1 year ago

omus commented 1 year ago

Depends on #68

Uses a Docker mount cache for storing the Julia depot. The primary advantage of this is that the ~/.julia directory information can persist between builds allowing for Docker builds with lots of dependencies to build much quicker. As part of incorporating this change I need to review how we were building the system image. Specifically, we no longer have the project stage be based off of the sysimage-image stage but instead only copy the information it requires from that stage.

I also experimented with making the use of the cache mount when building the system image to be read-only. If we could enable this flag then Docker would allow concurrent access to one locking writer and multiple readers. However, the sysimage.jl script does write to ~/.julia/logs/manifest_usage.toml which limits the us from utilizing this performance improvement. Additional testing is required to determine how much of a benefit this would provide.