我使用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)。
我只是建立了这个图像,重约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
答案 0 :(得分:2)
在通常缩小图像尺寸方面,您可以做很多事情:
RUN apt-get upgrade -y
。而是通过拉动基本图像的新版本并在需要时重建来更新图像。将所有apt-get install
内容放在同一行,然后使用rm -rf /var/lib/apt/lists/
删除不需要的文件,例如:
RUN apt-get update \
&& apt-get install -y cmake \
ninja-build \
...
&& rm -rf /var/lib/apt/lists/*
删除任何不需要的依赖项或使用较小的版本;你真的需要完整的g ++和两个版本的python吗?
RUN
指令中安装构建依赖项,构建emscripten并删除所有依赖项。这有点乱,但我注意到this emscripten Dockerfile做到了。尽管如此,我无法帮助减少emscripten的大小。