docker run -t bootclj/boot

flyboarder
degree9
Published in
3 min readJan 26, 2019
boot-clj logo

TL;DR — There are now official boot-clj docker images. The one you are probably looking for is bootclj/boot:latest

Boot just got a whole whack of official docker images on Docker Hub. With so many images to choose from how can you know you are using the right one? Well this article should help, and also give you an idea when it’s best to use each one.

We are going to start with the image everyone is probably looking for, if you’re new to boot or a seasoned pro, this is the image for you:

https://hub.docker.com/r/bootclj/boot

This container comes preloaded with the latest version and is the easiest way to run boot-clj.

Command Line: docker run -t bootclj/boot

Dockerfile:FROM bootclj/boot AS boot

When To Use:
- 🖥local development
- ☁️ CI/CD DevOps Workflows

The next image is the one you should be most excited about, it’s also the most experimental. Future version of boot target native cross-platform support using Oracle GraalVM, this image includes an early preview of the bootstrap native-image.

https://hub.docker.com/r/bootclj/boot-native

We really want you to give this version a try and report issues over on Github — but you should probably keep it out of production 💥.

Command Line: docker run -t bootclj/boot-native

Dockerfile:FROM bootclj/boot-native AS boot

When To Use:
- ☕️ checking compatibility with Oracle GraalVM
- 🖥local development
- 👩‍🔬experiments (polyglot apps)
- 🎨 art / 💥 explosions / 🔥 fire

Both of the previous images start off as bootclj/bootstrap which is the docker image of our boot-clj loader.

https://hub.docker.com/r/bootclj/bootstrap

Our bootclj/boot image is built with bootstrap + boot-clj library, while bootclj/boot-native is a directly compiled from bootstrap using the native-image tool from Oracle GraalVM.

Command Line: docker run -t bootclj/bootstrap

Dockerfile:FROM bootclj/bootstrap AS bootstrap

When To Use:
- 🖥hacking on boot
- 👩‍🔬custom boot versions

We put together a helper which greatly simplifies the developer experience when building java/clojure/boot projects. This is the bootclj/tooling image, which includes boot andlein on top of our official clojure image.

https://hub.docker.com/r/bootclj/tooling

This image contains the most stable version of boot available, which is currently 2.8.2 .

Command Line: docker run -t bootclj/tooling

Dockerfile:FROM bootclj/tooling AS build

When To Use:
- 🖥hacking on boot
- 🎛complex projects w/ multiple build tools

We have also built an official clojure image for boot which can be used for general clojure development and includes both clj and clojure tools.

https://hub.docker.com/r/bootclj/clojure

Most of the time you will want one of the images above, however we hope that eventually BootV4 will be able to compile itself via the clj tool. This would greatly simplify the previous images and cut down on the overall number of docker layers sent over the wire.

Command Line: docker run -t bootclj/clojure:1.10

Dockerfile:FROM bootclj/clojure:1.10 AS clojure

When To Use:
- 🖥development via clj / clojure tools
- 🎃 a no-install way to try clojure in a local sandbox
(except docker, but you already have that don’t you 😜)

One of the many challenges when building java/clojure containers is which base image to use, or trying to create and maintain a slim and secure image on your own — No More! We took the openjdk:8-alpine image and stuffed it with the common set of tools you will probably need as a developer.

https://hub.docker.com/r/bootclj/openjdk

Command Line: docker run -t bootclj/openjdk:8-alpine

Dockerfile:FROM bootclj/openjdk:8-alpine AS openjdk

When To Use:
- ☕️ development of java applications

--

--