首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emscripten“传入”安装异常庞大

Emscripten“传入”安装异常庞大
EN

Stack Overflow用户
提问于 2015-03-25 20:34:36
回答 1查看 395关注 0票数 1

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

代码语言:javascript
复制
emsdk install emscripten-incoming
emsdk install clang-incoming-64bit

安装成功完成,一切工作正常,尽管后来我注意到Docker镜像占用了我大约12 GB的硬盘。

当我使用Emscripten的主分支时,它只有2 2GB左右。

当我将图像上传到我的服务器时,这会引起我的问题。

安装太大了,我能做些什么吗?

编辑:

下面是我使用的Dockerfile:

代码语言:javascript
复制
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)。

我刚刚构建了这个镜像,它的重量约为2 2GB。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2015-03-25 21:53:57

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

  • 考虑使用debian镜像,而不是ubuntu镜像,ubuntu镜像应该可以满足你的需求,而且体积要小得多。
  • 不做RUN apt-get upgrade -y。相反,通过拉取基础镜像的新版本并在需要时重建来更新您的镜像。
  • 将所有apt-get install内容放在同一行上,然后使用rm -rf /var/lib/apt/lists/删除不需要的文件。例如:

运行apt-get update \ && apt-get install emscripten cmake \ /var/lib/apt/lists/*

  • Get \ ... & rm -rf -y去掉任何不需要的依赖项或使用更小的版本;你真的需要完整的g++和两个版本的g++吗?

  • 看看你是否可以在一个容器中构建-rf,然后将二进制文件复制到一个新的容器中。这样你就可以抛弃构建依赖项了。或者,您可以在同一个RUN指令中安装构建依赖项、构建嵌入和删除所有依赖项。这有点麻烦,但我注意到this emscripten Dockerfile确实做到了。

不过,在缩小emscripten的大小方面,我无能为力。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29255821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档