专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

cimg/clojure Docker 镜像 - 轩辕镜像

clojure
cimg/clojure
CircleCI官方Clojure便捷镜像,专为持续集成构建设计,适用于CircleCI环境。包含Clojure运行时、OpenJDK(默认17)、Leiningen和Babashka,支持Node.js及浏览器测试等变体,提供灵活标签方案以适应不同版本需求。
1 收藏0 次下载activecimg镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

CircleCI便捷镜像 => Clojure

一个专注于持续集成的Clojure Docker镜像,专为在CircleCI上运行而构建。

![CircleCI构建状态]([] ![软件许可证]([] ![Docker拉取次数]([] ![CircleCI社区]([]

此镜像旨在替代原始的CircleCI Clojure镜像 circleci/clojure。

cimg/clojure 是由CircleCI创建的Docker镜像,专为持续集成构建设计。每个标签包含Clojure版本、JVM以及在CircleCI环境中成功完成构建所需的所有二进制文件和工具。

目录

  • 快速开始
  • 镜像工作原理
  • 开发指南
  • 贡献指南
  • 其他资源
  • 许可证

快速开始

此镜像可与CircleCI的 docker 执行器配合使用。例如:

yaml
jobs:
  build:
    docker:
      - image: cimg/clojure:1.10.3
    steps:
      - checkout
      - run: lein version

在上述示例中,CircleCI Clojure Docker镜像被用作主容器。具体来说,使用了标签 1.10.3,这意味着Clojure版本为1.10.3。现在你可以在此作业的步骤中使用Clojure。

镜像工作原理

此镜像包含通过 clj 安装的Clojure编程语言以及 Leiningen(Clojure构建工具)。这些Clojure镜像默认包含OpenJDK 17,同时正在开发支持OpenJDK 8(及可能更多版本)的替代版本。

Babashka(Clojure脚本工具)已预装。请注意,Babashka版本更新频繁,而CircleCI仅在 upstream 项目发布新版本时才更新Clojure镜像,因此预装的Babashka版本可能有时会落后于最新版本。

父标签与父标识

父标签提供了选择特定版本的能力。结合父标识,Clojure镜像现在支持选择OpenJDK版本,格式为 parentSlug-parentTag,例如 openjdk-8.0(表示OpenJDK 8.0)。

变体版本

变体镜像通常包含相同的基础软件,但有少量额外修改。

Node.js变体

Node.js变体与基础Clojure镜像相同,但额外安装了Node.js。可通过在现有 cimg/clojure 标签后添加 -node 来使用,例如:

yaml
jobs:
  build:
    docker:
      - image: cimg/clojure:1.10.3-node
    steps:
      - checkout
      - run: node --version
浏览器变体

浏览器变体包含基础Clojure镜像的所有内容,并通过apt预装了Node.js、Selenium及浏览器依赖。可通过在现有 cimg/clojure 标签后添加 -browser 来使用。此变体旨在与 CircleCI浏览器工具orb 配合使用,该orb可帮助你在构建中安装特定版本的Google Chrome和/或Firefox。镜像包含使用浏览器及其驱动所需的所有支持工具。

yaml
orbs:
  browser-tools: circleci/browser-tools@1.1
jobs:
  build:
    docker:
      - image: cimg/clojure:1.10.3-browsers
    steps:
      - browser-tools/install-browser-tools
      - checkout
      - run: |
          node --version
          google-chrome --version
标签方案

此镜像采用以下标签格式:

cimg/clojure:<clojure-version>[-openjdk-version][-variant]
  • <clojure-version>:指定Clojure版本。可以是完整的SemVer点版本(如 1.10.1)或次要版本(如 1.10)。使用次要版本标签时,将自动指向Clojure团队发布的后续补丁更新。例如,标签 1.10 目前指向Clojure 1.10.1,当新版本发布后,将自动指向1.10.2。

  • <openjdk-version>:指定OpenJDK版本。注意:默认标签 cimg/clojure:<clojure-version>[-variant] 将使用最新OpenJDK版本(如17.0)。

  • [-variant]:可选的变体标签。例如,Node.js变体可表示为 cimg/clojure:1.10-node。

开发指南

可通过本仓库在本地构建和运行镜像。需满足以下要求:

  • Linux(已测试Ubuntu)或macOS本地机器
  • 新版Bash(v4+)
  • 新版Docker Engine(v19.03+)
社区用户克隆(无仓库写入权限)

在GitHub上 Fork 此仓库。获取克隆URL后,需添加 --recurse-submodules 参数以拉取仓库中包含的Git子模块,命令如下:

bash
git clone --recurse-submodules <我的克隆URL>

如果已克隆但未拉取子模块,可运行 git submodule update --recursive 补拉。之后可选择将此仓库添加为上游仓库:

bash
git remote add upstream [***]
维护者克隆(有仓库写入权限)

使用以下命令克隆项目以拉取子模块:

bash
git clone --recurse-submodules ***:CircleCI-Public/cimg-clojure.git
生成Dockerfile

可使用 gen-dockerfiles.sh 脚本为特定Clojure版本生成Dockerfile。例如,要生成Clojure 1.10.3的Dockerfile,从仓库根目录运行:

bash
./shared/gen-dockerfiles.sh 1.10.3#1.10.3.1058

其中,1.10.3 是Clojure版本,1.10.3.1058 是版本参数(Clojure版本+构建号)。构建号可从 Clojure Linux安装说明 获取,即该页面示例中版本的最后部分。

生成的Dockerfile位于 ./1.10/<parent-tag>/Dockerfile,变体版本的Dockerfile位于 ./1.10/<parent-tag>/<variant>/Dockerfile。

要本地构建并测试镜像(以OpenJDK 8.0为例):

bash
cd 1.10
docker build -t test/clojure:1.10.1-openjdk-8.0 .
docker run -it test/clojure:1.10.1-openjdk-8.0 bash

使用默认版本(最新)时,可运行:

bash
cd 1.10
docker build -t test/clojure:1.10.1 .
docker run -it test/clojure:1.10.1 bash

# 或显式指定OpenJDK 17.0
docker build -t test/clojure:1.10.1-openjdk-17.0 .
docker run -it test/clojure:1.10.1-openjdk-17.0 bash
构建Docker镜像

要像本仓库一样本地构建Docker镜像,需先生成Dockerfile,然后运行 build-images.sh 脚本:

bash
./build-images.sh

正式发布CircleCI镜像时,此脚本将在CircleCI流水线中运行,而非本地。

发布官方镜像(仅限维护者)

上述脚本可用于创建镜像所需文件,之后可创建新Git分支、提交更改等。仓库包含发布脚本以简化流程。例如,要发布Clojure 9.9.9(示例版本),从仓库根目录运行:

bash
./shared/release.sh 9.9.9#9.9.9.1234

其中 9.9.9 是Clojure版本,9.9.9.1234 是版本参数(Clojure版本+构建号)。构建号获取方式同上。

此命令将自动创建新Git分支、生成Dockerfile、暂存更改、提交并推送到GitHub。之后需:

  • 等待CircleCI构建完成
  • 审核PR
  • 合并PR

主分支构建将自动发布版本。

变更整合

变更的整合方式取决于其来源:

构建脚本:./shared 子模块中的变更在其 独立仓库 中进行。要使这些变更影响本镜像,需更新子模块:

bash
cd shared
git pull
cd ..
git add shared
git commit -m "更新子模块以支持XX功能"

父镜像:设计上,父镜像变更不会影响现有Clojure镜像(以确保构建确定性,避免破坏用户构建)。新Clojure镜像将自动继承父镜像变更。若需将父镜像变更合并到现有Clojure镜像,需将其作为新镜像版本构建(生成新Dockerfile并发布)。

Clojure特定变更:通过编辑本仓库的 Dockerfile.template 文件修改Clojure镜像。本地查看变更需重新运行 gen-dockerfiles.sh 脚本(见上文)。

贡献指南

我们欢迎提交 issues 和 pull requests,但为尊重你的时间,请注意:

  1. 并非所有工具都会被纳入镜像。工具需满足:维护活跃且对大多数Clojure开发者有用。每个工具都会增加镜像大小并降低所有用户的构建速度,因此需严格筛选。

  2. PR欢迎,但大型PR建议先开issue讨论,确保其价值。

  3. Issues用于报告bug或请求增减工具。镜像使用问题请访问 CircleCI Discuss。

其他资源

CircleCI文档 - 官方CircleCI文档网站。
CircleCI配置参考 - 文档中最实用的页面之一,列出了 .circleci/config.yml 支持的所有键和值。
Docker文档 - 简单项目可能无需,但深入学习Docker的优质资源。

许可证

本仓库采用MIT许可证。详见 LICENSE。

查看更多 clojure 相关镜像 →
clojure logo
clojure
by library
官方
Clojure Docker镜像是基于Lisp方言Clojure的容器化解决方案,运行在JVM上,支持Leiningen、Boot和tools-deps等构建工具,适用于Clojure项目的开发、构建与运行。
36510M+ pulls
上次更新:10 天前
amd64/clojure logo
amd64/clojure
by amd64
Clojure是一种运行在JVM上的Lisp方言,支持函数式编程,将代码视为数据并拥有宏系统。
1M+ pulls
上次更新:12 天前
arm64v8/clojure logo
arm64v8/clojure
by arm64v8
Clojure是运行在JVM上的Lisp方言,提供基于JVM的函数式编程环境。
1500K+ pulls
上次更新:12 天前
ccitest/clojure logo
ccitest/clojure
by ccitest
CircleCI的Clojure测试镜像
100K+ pulls
上次更新:1 个月前
codesignal/clojure logo
codesignal/clojure
by codesignal
为Clojure开发量身定制的环境,包含Clojure 1.12.0.1517运行时及org.clojure/string、core等常用通用库,适用于Clojure应用的开发、测试与学习。
10K+ pulls
上次更新:2 个月前
ppc64le/clojure logo
ppc64le/clojure
by ppc64le
该镜像提供运行在JVM上的Lisp方言Clojure环境,支持相关应用开发。
50K+ pulls
上次更新:12 天前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
cimg/clojure
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429