Emscripten“传入”安装exception大

我使用emsdk在Ubuntu 14.04 Docker容器上安装了Emscripten,如下所示:

emsdk install emscripten-incoming emsdk install clang-incoming-64bit 

安装成功完成,一切工作正常,但我后来注意到,Docker映像需要大约12 GB的硬盘。
当我使用Emscripten的主分支时,它的重量只有2GB左右。
当我将图像上传到我的服务器时,这导致了我的问题。
有什么我可以做的关于安装的大尺寸?

编辑:
这里是我使用的Dockerfile:

 FROM ubuntu:14.04 ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y cmake RUN apt-get install -y ninja-build RUN apt-get install -y python2.7 RUN apt-get install -y default-jre RUN apt-get install -y git RUN apt-get install -y python RUN apt-get install -y g++ RUN apt-get install -y nodejs RUN apt-get install -y nodejs-legacy # Download emsdk RUN apt-get install -y curl RUN cd /tmp && curl 'https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz' | tar xvz # Install emsdk RUN /tmp/emsdk_portable/emsdk update RUN /tmp/emsdk_portable/emsdk install emscripten-incoming RUN /tmp/emsdk_portable/emsdk install clang-incoming-64bit RUN /tmp/emsdk_portable/emsdk activate emscripten-incoming ENV PATH /tmp/emsdk_portable:$PATH ENV PATH /tmp/emsdk_portable/clang/fastcomp/build_master_64/bin:$PATH ENV PATH /tmp/emsdk_portable/emscripten/incoming:$PATH ENV EMSCRIPTEN /tmp/emsdk_portable/emscripten/incoming RUN apt-get install -y python-yaml 

编辑:
这是使用Emscripten的主分支的以前的Dockerfile。
唯一的区别是Emscripten分支(我把安装移到了/ usr / local / emscripten)。
我刚build立这个图像,它的重量约2GB。

 FROM ubuntu:14.04 ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y cmake RUN apt-get install -y ninja-build RUN apt-get install -y python2.7 RUN apt-get install -y default-jre RUN apt-get install -y git RUN apt-get install -y python RUN apt-get install -y g++ RUN apt-get install -y nodejs RUN apt-get install -y nodejs-legacy # Download emsdk RUN apt-get install -y curl RUN mkdir -p /usr/local/emscripten RUN cd /usr/local/emscripten && curl 'https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz' | tar xvz # Install emsdk RUN /usr/local/emscripten/emsdk_portable/emsdk update RUN /usr/local/emscripten/emsdk_portable/emsdk install emscripten-master RUN /usr/local/emscripten/emsdk_portable/emsdk install clang-master-64bit RUN /usr/local/emscripten/emsdk_portable/emsdk activate emscripten-master ENV PATH /usr/local/emscripten/emsdk_portable:$PATH ENV PATH /usr/local/emscripten/emsdk_portable/clang/fastcomp/build_master_64/bin:$PATH ENV PATH /usr/local/emscripten/emsdk_portable/emscripten/master:$PATH ENV EMSCRIPTEN /usr/local/emscripten/emsdk_portable/emscripten/master RUN apt-get install -y python-yaml 

就通常缩小图像大小而言,您可以做很多事情:

  • 考虑使用debian映像,而不是Ubuntu的,这应该适合你的目的,而且要小得多。
  • 不要RUN apt-get upgrade -y 。 而是通过拉动基础镜像的新版本来更新图像,并在需要时重build。
  • 把所有apt-get install东西放在同一行,然后用rm -rf /var/lib/apt/lists/ eg删除不需要的文件:

     RUN apt-get update \ && apt-get install -y cmake \ ninja-build \ ... && rm -rf /var/lib/apt/lists/* 
  • 摆脱任何不必要的依赖或使用较小的版本; 你真的需要完整的g ++和python的两个版本吗?

  • 看看你是否可以在一个容器中构buildemscripten,然后将二进制文件复制到一个新的容器中。 这样你可以消除构build依赖关系。 或者,您可以安装构build依赖关系,构buildemscripten并在相同的RUN指令中删除所有依赖项。 这有点乱,但我注意到这个emscripten Dockerfile做到了。

但是我不能特别减小emscripten的大小。