我需要构建一个“纤薄”的docker镜像,它只包含单声道运行时,以便执行预编译的F#app。换句话说,我想创建最简洁的图像来执行单声道应用程序,而不需要任何其他用于编译/构建应用程序的东西。我正在使用Ubuntu:16.04作为我的基本图像(重约47MB)。
如果我尝试在该图像上安装mono(使用apt-get install mono-devel),那么图像会增长到500MB。这当然是因为安装了整个单声道开发工具。
如何才能创建包含单声道运行时的图像?有没有办法通过apt-get单声道运行时安装?
答案 0 :(得分:6)
我正在回答这个问题:
如何继续只创建包含单声道运行时的图像?
为此,答案是肯定的。有一个名为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)。