我需要构建一个"苗条"的docker镜像,它只包含单声道运行时,以便执行预编译的F#app.换句话说,我想创建最简洁的图像来执行单声道应用程序,而不需要任何其他用于编译/构建应用程序的东西.我正在使用Ubuntu:16.04作为我的基本图像(重约47MB).
如果我尝试在该图像上安装mono(使用apt-get install mono-devel),那么图像会增长到500MB.这当然是因为安装了整个单声道开发工具.
如何才能创建包含单声道运行时的图像?有没有办法通过apt-get单声道运行时安装?
我正在回答这个问题:
如何才能创建包含单声道运行时的图像?
为此,答案是肯定的.只有运行时调用的包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
Run Code Online (Sandbox Code Playgroud)
在评论中也提到,有基于Linux的高山一些很小的图像,可能会感兴趣的,如https://hub.docker.com/r/frolvlad/alpine-mono/(这在目前是大约200 MB) .