我想在泊坞窗,而我已经找到了基本图像FCO /堆栈构建部署我的Haskell的应用程序需要9GB!你知道一个基本映像不止于此最小?
stack-build
是一样大,因为它是,因为它包含了所有Stackage包所需的系统依赖。
我现在用的是以下基本形象建设和部署:
FROM ubuntu:18.04
RUN apt-get update
# Build dependencies
RUN apt-get install --assume-yes curl
RUN curl -sSL https://get.haskellstack.org/ | sh
RUN apt-get install --assume-yes libtinfo-dev
# Without this haddock crashes for modules containing
# non-ASCII characters.
ENV LANG C.UTF-8
这不是真的很小,如果你只是想在运行时使用的图像,你就不需要在这种情况下栈。
首先,该图像可能只需要生成可执行文件,一旦你拥有了它内置您可以使用多级码头工人建立或仅仅是可执行文件直接拷贝到一个更苗条的形象。
该dockerfile可以在这里找到:https://github.com/commercialhaskell/stack/blob/master/etc/dockerfiles/stack-build/lts-13.0/Dockerfile
你可以删除这些命令(其中加起来大概大部分的大小):
# Use Stackage's debian-bootstrap.sh script to install system libraries and
# tools required to build any Stackage package.
#
RUN apt-get update && \
apt-get install -y wget && \
wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash && \
rm -rf /var/lib/apt/lists/*