Skip to content

快速参考

支持的标签及相应的 Dockerfile 链接

(见常见问题解答中“‘共享’和‘简单’标签之间的区别是什么?”)

简单标签

共享标签

快速参考(续)

什么是 Hy?

Hy(又名 Hylang)是 Lisp 编程语言的一种方言,旨在通过将表达式转换为 Python 的抽象语法树(AST)来与 Python 进行互操作。类似于 Clojure 将 s 表达式映射到 JVM 上,Hy 旨在作为 Python 抽象语法的透明 Lisp 前端运行。Hy 还允许导入 Python 库(包括标准库)并与 Hy 代码一起访问,通过编译步骤将两者的数据结构转换为 Python 的 AST。

维基百科.org/wiki/氢

logo

如何使用此图像

在你的 Hy 项目中创建一个 Dockerfile

FROM hylang:0.10
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "hy", "./your-daemon-or-script.hy" ]

然后你可以构建并运行 Docker 镜像:

$ docker build -t my-hylang-app
$ docker run -it --rm --name my-running-app my-hylang-app

运行单个 Hy 脚本

对于许多简单的单文件项目,你可能会发现编写完整的 Dockerfile 很不方便。在这种情况下,你可以直接使用 Hy Docker 镜像来运行 Hy 脚本:

$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp hylang:0.10 hy your-daemon-or-script.hy

图像变体

hylang 图像有多种类型,每种都针对特定的用例而设计。

hylang:<version>

这是事实上的镜像。如果你不确定自己的需求是什么,你可能想要使用这个。它被设计既可用作一次性容器(挂载你的源代码并启动容器以启动你的应用程序),也可用作构建其他镜像的基础。

其中一些标签可能包含诸如“书虫”或“靶心”之类的名称。这些是 Debian 发行版的套件代号,表明该镜像基于哪个发行版。如果你的镜像需要安装除镜像自带的软件包之外的任何其他软件包,你可能希望明确指定其中之一,以便在 Debian 有新版本发布时最大程度地减少损坏。

hylang:<version>-alpine

此镜像基于流行的 Alpine Linux 项目,在 alpine 官方镜像中可用。Alpine Linux 比大多数发行版基础镜像小得多(约 5MB),因此通常会生成更精简的镜像。

当尽可能小的最终镜像大小是你主要关心的问题时,这个变体很有用。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 及其同类,所以软件通常会根据其对 libc 要求/假设的深度而遇到问题。有关可能出现的问题以及使用基于 Alpine 的镜像的一些优缺点比较的更多讨论,请参阅此 Hacker News 评论线程。

为了最小化镜像大小,在基于 Alpine 的镜像中包含额外的相关工具(例如 gitbash )是不常见的。使用此镜像作为基础,在你自己的 Dockerfile 中添加你需要的东西(如果你不熟悉,可查看 alpine 镜像描述以获取如何安装软件包的示例)。

hylang:<version>-windowsservercore

此图像基于 Windows Server Core( microsoft/windowsservercore )。因此,它仅在该图像适用的地方起作用,例如 Windows 10 专业版/企业版(周年纪念版)或 Windows Server 2016。

有关如何在 Windows 上运行 Docker 的信息,请参阅 Microsoft 提供的相关“快速入门”指南:

许可证

查看此映像中包含的软件的许可证信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 hylang/ 目录中找到。

对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用都符合其中包含的所有软件的任何相关许可证。