Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UbuntuDocker镜像,具有最小的mono运行时间,以便运行F#应用程序_Docker_F#_Mono - Fatal编程技术网

UbuntuDocker镜像,具有最小的mono运行时间,以便运行F#应用程序

UbuntuDocker镜像,具有最小的mono运行时间,以便运行F#应用程序,docker,f#,mono,Docker,F#,Mono,为了执行预编译的F#app,我需要构建一个只包含mono运行时的“slim”docker映像。换句话说,我想创建尽可能精简的映像来执行mono应用程序,而不需要任何编译/构建应用程序的额外内容。我使用Ubuntu:16.04作为我的基本图像(大约47MB) 如果我尝试在该映像上安装mono(使用apt-get-install-mono-devel),那么映像将增长到惊人的500MB。这当然是因为安装了整个mono开发工具 如何继续仅创建包含mono运行时的映像?有没有办法通过apt获取mono运

为了执行预编译的F#app,我需要构建一个只包含mono运行时的“slim”docker映像。换句话说,我想创建尽可能精简的映像来执行mono应用程序,而不需要任何编译/构建应用程序的额外内容。我使用Ubuntu:16.04作为我的基本图像(大约47MB)

如果我尝试在该映像上安装mono(使用apt-get-install-mono-devel),那么映像将增长到惊人的500MB。这当然是因为安装了整个mono开发工具


如何继续仅创建包含mono运行时的映像?有没有办法通过apt获取mono运行时进行安装?

我正在回答这样一个问题:

如何继续仅创建包含mono运行时的映像

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

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

评论中也提到了一些基于Alpine linux的最小图像,例如(目前约为200 MB)。

在一次运行中显示Dockerfile,顺便说一下,安装和清理?这张图片只有5 MB,你也可以使用原始图片@user2915097是的,这是我要做的,但后来我看到链接中提到了“glib hack”。不完全确定这在实践中意味着什么,但我不能依赖于生产环境的黑客。除此之外,你可以探索mono的不同领域。检查
软件包
文件,您将看到在尝试安装给定软件包时apt get将处理什么。如果您想编译fsharp,可以使用包清单来查看mono的所有不同包,包括
mono运行时
fsharp
。我没有意识到F#可能还需要其他依赖项。除了运行时,他们还可以安装
libfsharp-core4.3-cil
。我修改了我的答案,使之更加完整,具体到F。