{"id":13561117,"url":"https://github.com/Quantisan/docker-clojure","last_synced_at":"2025-04-03T16:32:03.362Z","repository":{"id":19641146,"uuid":"22893369","full_name":"Quantisan/docker-clojure","owner":"Quantisan","description":"Official Docker image for Clojure","archived":false,"fork":false,"pushed_at":"2025-03-26T16:17:32.000Z","size":1186,"stargazers_count":204,"open_issues_count":11,"forks_count":34,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-03T03:08:55.150Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hub.docker.com/_/clojure/","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Quantisan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-08-12T21:37:54.000Z","updated_at":"2025-03-26T16:17:27.000Z","dependencies_parsed_at":"2023-12-05T16:43:25.471Z","dependency_job_id":"e3f459d3-54df-4a5c-8f1a-5552f4b33c56","html_url":"https://github.com/Quantisan/docker-clojure","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quantisan%2Fdocker-clojure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quantisan%2Fdocker-clojure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quantisan%2Fdocker-clojure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quantisan%2Fdocker-clojure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Quantisan","download_url":"https://codeload.github.com/Quantisan/docker-clojure/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247037107,"owners_count":20873097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:00:52.682Z","updated_at":"2025-04-03T16:32:03.356Z","avatar_url":"https://github.com/Quantisan.png","language":"Dockerfile","funding_links":[],"categories":["Dockerfile"],"sub_categories":[],"readme":"# docker-clojure\n\nThis is the repository for the [Docker Official Image for Clojure](https://registry.hub.docker.com/_/clojure/).\n[Docker Official Images](https://docs.docker.com/docker-hub/image-library/trusted-content/#docker-official-images)\nare a curated set of Docker repositories hosted on Docker Hub.\n\nIt is automatically pulled and built by Stackbrew into the Docker registry.\nThis image runs on OpenJDK 8, 11, 17, and more recent releases and includes\n[Leiningen](http://leiningen.org) or [tools-deps](https://clojure.org/reference/deps_and_cli)\n(see below for tags and building instructions).\n\n## Leiningen vs. tools-deps\n\nThe version tags on these images look like `(temurin-major-version-)lein-N.N.N(-distro)`,\nor `(temurin-major-version-)tools-deps(-distro)`. These refer to which version\nof leiningen or tools-deps is packaged in the image (because they can then install\nand use any version of Clojure at runtime). The `lein` (or `lein-bullseye-slim`,\n`temurin-17-lein`, etc.) images will always have a recent version of leiningen\ninstalled. If you want to use tools-deps, specify either `clojure:tools-deps`,\n`clojure:tools-deps-bullseye-slim` or other similar variants.\n\n### boot\n\nAs of 5/2024, new [boot](https://boot-clj.github.io) images are no longer\nprovided. The existing boot images will remain in the registry.\n\n### Note about the latest tag\n\nAs of 2020-3-20 the `clojure:latest` (also `clojure` because `latest` is the\ndefault) now has leiningen and tools-deps installed.\n\nPreviously this tag only had leiningen installed. Installing tools-deps too is\nhelpful for quick start examples, newcomers, etc. as leiningen is by no means\nthe de facto standard build tool these days. The downside is that the image is\nlarger. But for the `latest` tag it's a good trade-off because for anything real\nwe have always recommended using more specific tags. No other tags are affected\nby this change.\n\n## JDK versions\n\nJava follows a release cadence of every 6 months with an LTS (long-term support)\nrelease every 2-3 years. As of 2019-9-25, our images will default to the latest\nLTS release of OpenJDK (currently 21). But we also now provide the ability to\nspecify which version of Java you'd like via Docker tags:\n\nJDK 1.8 tools-deps image: `clojure:temurin-8-tools-deps`  \nJDK 11 variant of the tools-deps image: `clojure:temurin-11-tools-deps` or `clojure:temurin-11`  \nJDK 17 with lein 2.11.2: `clojure:temurin-17-lein-2.11.2`  \nJDK 20 with the latest version of lein: `clojure:temurin-20-lein`  \nJDK 21 variant of the tools-deps image: `clojure:tools-deps` or `clojure:temurin-21` or `clojure:temurin-21-tools-deps`  \nJDK 24 variant of the tools-deps image: `clojure:temurin-24` or `clojure:temurin-24-tools-deps`\n\n## Linux distro\n\nThe upstream eclipse-temurin images are built on different versions of Ubuntu,\nso we have exposed those in our Docker tags as well. However, Ubuntu is not the\nbest distro for Docker images in many cases. In particular, their insistence on\nreplacing traditional dpkg packages with snaps renders them essentially\nunusable inside containers because they need a daemon running to even install.\nTo mitigate this we provide Debian-based images that copy the Java bits from\nthe eclipse-temurin images (which is what the Temurin folks recommend when you\nwant a different base image than what they provide). It is recommended to use\nthe Debian variants unless you have a need to use Ubuntu or stick closer to the\nofficial upstream images.\n\nAs of 2023-10-12 the default distro is Debian bookworm (12) in JDK 21+ images\nand Ubuntu jammy (22.04) in JDK \u003c=20 images in order to maintain backwards\ncompatibility. But we recommend you use Debian variants on any JDK version\nunless you have a good, specific reason not to. There are fewer dead ends that\nway.\n\n### debian-slim\n\nFor a lighter-weight image, try the Debian `-slim` variants. You can just put\n`bookworm-slim` (for Debian 12) or `bullseye-slim` (for Debian 11) in the distro\nslot of your Docker tag to get those.\n\n### Examples\n\nYou can specify which distro \u0026 version you'd like by appending it to the end of\nyour Docker tag as in the following examples (but note that not every\ncombination is provided upstream and thus likewise for us):\n\nJava 8 leiningen on Debian bullseye-slim: `clojure:temurin-8-lein-bullseye-slim`  \nJava 11 leiningen on Debian bullseye: `clojure:temurin-11-lein-bullseye`  \nJava 17 tools-deps on Ubuntu noble: `clojure:tools-deps` or `clojure:temurin-17` or `clojure:temurin-17-tools-deps` or `clojure:temurin-17-tools-deps-noble`  \nJava 17 tools-deps on Debian bullseye-slim: `clojure:bullseye-slim` or `clojure:tools-deps-bullseye-slim` or `clojure:temurin-17-bullseye-slim` or `clojure:temurin-17-tools-deps-bullseye-slim`  \nJava 21 tools-deps on Debian bookworm: `clojure:tools-deps` or `clojure:temurin-21-tools-deps` or `clojure:temurin-21-bookworm`  \nJava 24 leiningen on Debian bookworm: `clojure:temurin-24-lein-bookworm`\n\n### Alpine Linux\n\nSometimes there are upstream eclipse-temurin images based on Alpine Linux.\n\nAs of 2022-9-29 these are available for the linux/amd64 architecture only.\n\nSome example tags:\n\nJava 17 leiningen on Alpine: `clojure:temurin-17-alpine` `clojure:temurin-17-lein-alpine`  \nJava 21 tools-deps on Alpine: `clojure:temurin-21-tools-deps-alpine` or `clojure:temurin-21-alpine`\n\n## Examples\n\n### Interactive Shell\n\nRun an interactive shell from this image.\n\n```\ndocker run -ti clojure bash\n```\n\nThen within the shell, create a new Leiningen project and start a Clojure REPL.\n\n```\nlein new hello-world\ncd hello-world\nlein repl\n```\n\n## Builds\n\nThe Dockerfiles are generated by the `docker-clojure` Clojure app in this repo.\n\nYou'll need a recent version of [Babashka](https://babashka.org/) installed to\nrun the builds.\n\nTake a look at the `:tasks` key in the `bb.edn` file in the root of this repo.\nEach of these can be invoked via `bb run [task]` at the command line.\n\nFor example, to build all images locally, run `bb run build-images`.\n\n### buildx\n\nNote that you'll need to enable the new `buildx` feature and set as the default\nbuilder in the Docker daemon you're using to build the images. The build script\nuses some flags that require it.\n\nYou'll also need to create a builder container with `docker buildx create --use`\nin order to build images for all supported platforms (currently linux/amd64 and\nlinux/arm64).\n\n[Read the docs here](https://docs.docker.com/buildx/working-with-buildx/) for more info.\n\n## Tests\n\nThe `docker-clojure` build tool has a test suite that can be run via the\n`bb run test` script.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQuantisan%2Fdocker-clojure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FQuantisan%2Fdocker-clojure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQuantisan%2Fdocker-clojure/lists"}