
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Clojure是Lisp编程语言的一种方言,是一种强调函数式编程的通用编程语言,运行在Java虚拟机(JVM)、公共语言运行时(CLR)和JavaScript引擎上。与其他Lisp语言一样,Clojure将代码视为数据,并具有宏系统。
本Docker镜像提供了Clojure的容器化环境,支持多种构建工具,可用于快速开发、构建和运行Clojure项目,也可作为构建其他基于Clojure的应用镜像的基础。
amd64、arm64v8、ppc64le、riscv64、s390x等架构clojure:lein-2.8.1),也可使用默认标签(如clojure:lein)注意:本镜像描述长度超过Docker Hub的25000字符限制,因此"支持的标签"列表已被截断。详情请参见https://github.com/docker-library/docs/tree/master/clojure/README.md#supported-tags-and-respective-dockerfile-links%E3%80%82
Clojure有三种主要的项目构建和运行方式:
clojure:lein或clojure:lein-<version>(如clojure:lein-2.8.1)clojure:boot或clojure:boot-<version>clojure:tools-deps或clojure:tools-deps-<version>基础Dockerfile示例
为现有Leiningen/Clojure项目添加以下Dockerfile:
dockerfileFROM clojure COPY . /usr/src/app WORKDIR /usr/src/app CMD ["lein", "run"]
构建并运行镜像:
console$ docker build -t my-clojure-app . $ docker run -it --rm --name my-running-app my-clojure-app
优化版Dockerfile(预下载依赖和编译)
上述基础示例每次运行都会下载依赖、编译项目,启动较慢。优化版预下载依赖并编译为独立JAR:
dockerfileFROM clojure RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY project.clj /usr/src/app/ RUN lein deps # 下载依赖(依赖变更时才会重新下载) COPY . /usr/src/app RUN mv "$(lein uberjar | sed -n 's/^Created \(.*standalone\.jar\)/\1/p')" app-standalone.jar # 编译为独立JAR CMD ["java", "-jar", "app-standalone.jar"]
同样使用上述docker build和docker run命令构建运行。
对于现有Lein/Clojure项目,可直接在容器内编译为JAR:
console$ docker run -it --rm -v "$PWD":/usr/src/app -w /usr/src/app clojure lein uberjar
编译后的JAR文件位于项目的target/uberjar目录。
有关使用Boot和tools-deps的详细说明,请参见https://github.com/Quantisan/docker-clojure/blob/master/README.md%E3%80%82
Clojure镜像提供多种变体,适用于不同场景:
clojure:<version>(默认镜像)这是默认镜像,适用于大多数场景。既可作为临时容器(挂载源码并启动应用),也可作为构建其他镜像的基础。部分标签包含Debian或Ubuntu发行版代号(如bookworm、bullseye、jammy),表示基于相应的发行版构建,适合需要安装额外包的场景。
clojure:<version>-alpine基于Alpine Linux的镜像,体积更小(约5MB基础镜像)。主要适用于对镜像大小有严格要求的场景。注意:Alpine使用musl libc而非glibc,可能与某些依赖glibc的软件不兼容。通常不包含git、bash等额外工具,需在Dockerfile中自行安装。
clojure:<version>-slim精简版镜像,仅包含运行Clojure所需的最小依赖。仅推荐在空间受限且仅部署Clojure镜像的环境中使用,否则建议使用默认镜像。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务