Ubuntu Docker 具有最少单声道图像 运行 时间以便 运行 F# 应用程序

Ubuntu Docker image with minimal mono runtime in order to run F# app

我需要构建一个仅包含单声道运行时的 "slim" docker 映像,以便执行预编译的 F# 应用程序。换句话说,我想创建最精简的图像来执行单声道应用程序,而不需要 compiling/building 应用程序的任何额外内容。我使用 Ubuntu:16.04 作为我的基本图像(大约 47MB)。

如果我尝试在该映像之上安装单声道(使用 apt-get install mono-devel),则该映像会增长到高达 500MB。这当然会发生,因为安装了整个单声道开发工具。

我如何继续只创建包含单声道运行时的图像?有没有办法通过 apt-get 安装单声道运行时?

我正在回答问题:

How can I proceed to only create an image containing the mono runtime?

对此,答案是肯定的。有一个名为 mono-runtime 的运行时包。除此之外,还有一个 apt 选项可以忽略使用 --no-install-recommends 安装推荐的包(通常是文档和其他运行时可能不需要的东西)。将两者结合起来,我们可以在 Ubuntu 基础上减少到大约 240 MB:

FROM ubuntu
RUN apt update && apt install -qy --no-install-recommends mono-runtime libfsharp-core4.3-cil

评论中还提到,还有一些基于 Alpine linux 的最小图像可能会引起兴趣,例如 https://hub.docker.com/r/frolvlad/alpine-mono/(目前约为 200 MB)。