Skip to content

快速参考

  • 由……维护: (注:原文中“Maintained by:”后面应该会有具体的维护者信息,若有完整内容,翻译会更加准确。这里仅根据给定的部分进行了翻译。)
    哈克斯基金会

  • 哪里可以获得帮助:
    Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow

支持的标签及各自的 Dockerfile 链接

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

简单标签

共享标签

快速参考(续)

什么是 Haxe?

Haxe 是一个开源工具包,基于一种现代的、高级的、强类型编程语言,一个交叉编译器,一个完整的跨平台标准库以及访问每个平台原生功能的方法。

Haxe 编译器可以输出许多源代码文件和二进制文件。截至 Haxe 3.4.0 - rc.1,Haxe 编译器可以针对 JavaScript、Java、C#、C++、Python、PHP、Flash SWF、ActionScript 3、Lua 和 Neko 进行编译。

logo

关于此图像

此图像附带一个最小化的 Haxe 工具包:

  • haxe 编译器及其标准库
  • haxelib 库管理器
  • neko 虚拟机

如何使用此图像

使用此图像的最简单方法是将 Haxe 容器用作构建和运行时环境。在您的 Dockerfile 中,编写如下内容将编译并运行您的项目:

FROM haxe:3.4

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# install dependencies
COPY *.hxml /usr/src/app/
RUN yes | haxelib install all

# compile the project
COPY . /usr/src/app
RUN haxe build.hxml

# run the output when the container starts
CMD ["neko", "Main.n"]

然后,构建并运行 Docker 镜像:

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

使用 onbuild 变体

存在 onbuild 变体,其中包含多个 ONBUILD 触发器来执行上述 Dockerfile 中的所有步骤,但没有用于运行编译输出的 CMD 指令。

使用 haxe:3.4-onbuild 重写上述 Dockerfile,我们将得到:

FROM haxe:3.4-onbuild

# run the output when the container starts
CMD ["neko", "Main.n"]

onbuild 变体假定主编译 hxml 文件名为 build.hxml 。若要使用另一个 hxml 文件,请在构建期间设置 BUILD_HXML 构建参数:

$ docker build -t my-haxe-app --build-arg BUILD_HXML=compile.hxml .

图像变体

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

haxe:<version>

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

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

haxe:<version>-windowsservercore

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

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

haxe:<version>-alpine

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

当您首要关注的是最终图像大小尽可能小的时候,此变体是有用的。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 及相关库,因此软件往往会根据其对 libc 要求/假设的深度而遇到问题。有关可能出现的问题以及使用基于 Alpine 的图像的一些利弊比较的更多讨论,请参阅此 Hacker News 评论线程。

为尽量减小镜像大小,在基于 Alpine 的镜像中通常不会包含其他相关工具(例如 gitbash )。以该镜像为基础,在您自己的 Dockerfile 中添加您需要的内容(如果您不熟悉如何安装软件包,请参阅 alpine 镜像说明中的示例)。

许可证

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

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

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

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