如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意: 这是 https://hub.docker.com/_/clojure 的 arm32v7 架构“按架构”仓库 — 更多信息,请参阅官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64”以及官方镜像常见问题中的“https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what”。
-** 维护者:**https://github.com/Quantisan/docker-clojure
-** 获取帮助:**https://dockr.ly/comm-slack、Server Fault、https://unix.stackexchange.com/help/on-topic 或 https://stackoverflow.com/help/on-topic
Dockerfile 链接警告:此镜像在 arm32v7 架构上不受支持-** 问题反馈地址:**https://github.com/Quantisan/docker-clojure/issues?q=
-** 支持的架构 **:(https://github.com/docker-library/official-images#architectures-other-than-amd64) https://hub.docker.com/r/amd64/clojure/、https://hub.docker.com/r/arm64v8/clojure/、https://hub.docker.com/r/ppc64le/clojure/、https://hub.docker.com/r/riscv64/clojure/、https://hub.docker.com/r/s390x/clojure/
-** 已发布镜像制品详情 **:https://github.com/docker-library/repo-info/blob/master/repos/clojure(https://github.com/docker-library/repo-info/commits/master/repos/clojure)(镜像元数据、传输大小等)
-** 镜像更新 **:https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fclojure、https://github.com/docker-library/official-images/blob/master/library/clojure(https://github.com/docker-library/official-images/commits/master/library/clojure)
-** 本描述的来源 **:https://github.com/docker-library/docs/tree/master/clojure(https://github.com/docker-library/docs/commits/master/clojure)
Clojure 是 Lisp 编程语言的一种方言。它是一种通用编程语言,强调函数式编程。它运行在 Java 虚拟机(JVM)、公共语言运行时(CLR)和 JavaScript 引擎上。与其他 Lisp 语言一样,Clojure 将代码视为数据,并具有宏系统。
***.org/wiki/Clojure
Clojure 有三种主要的项目构建和运行方法:
此镜像针对所有这三种工具及其各自的版本提供了变体。这些标签的最基本形式为:
clojure:leinclojure:bootclojure:tools-deps您还可以在标签后添加连字符和所需工具的版本。例如,对于 lein 2.8.1,您可以使用此镜像:clojure:lein-2.8.1。
为现有 Leiningen/Clojure 项目添加一个包含以下内容的 Dockerfile:
dockerfileFROM docker.xuanyuan.run/arm32v7/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 最直接的示例,但它存在一些缺点。lein run 命令会下载依赖项、编译项目,然后运行它。这涉及大量工作,您可能不希望每次运行镜像时都执行这些操作。为了解决这个问题,您可以提前下载依赖项并编译项目。这将显著减少运行镜像时的启动时间。
dockerfileFROM docker.xuanyuan.run/arm32v7/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 CMD ["java", "-jar", "app-standalone.jar"]
以这种方式编写 Dockerfile 将下载依赖项(并缓存它们,因此仅在依赖项更改时才重新下载),然后提前将它们编译成独立的 jar,而不是每次运行镜像时都进行编译。
您可以像上面一样构建并运行镜像。
如果您有一个现有 Lein/Clojure 项目,从容器中将项目编译为 jar 相当简单:
console$ docker run -it --rm -v "$PWD":/usr/src/app -w /usr/src/app arm32v7/clojure lein uberjar
这会将您的项目构建为 jar 文件,位于项目的 target/uberjar 目录中。
更多详情,请参阅 https://github.com/Quantisan/docker-clojure/blob/master/README.md,了解如何将此镜像与 boot 和 tools-deps 一起使用。
查看此镜像中包含的软件的 http://clojure.org/license。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(例如基础发行版中的 Bash 等,以及包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能位于 https://github.com/docker-library/repo-info/tree/master/repos/clojure 中。
至于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用都符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务