Обновленный (lts-13.0) минимальный базовый образ докера для haskell / stack? - PullRequest
0 голосов
/ 29 января 2019

Я хотел бы развернуть мое приложение на haskell в докере, а найденный мной базовый образ fco / stack-build занимает 9 ГБ!Знаете ли вы, базовое изображение более минимальное, чем это?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Во-первых, этот образ может понадобиться только для сборки исполняемого файла, после того, как вы его построите, вы можете использовать многоступенчатую сборку Docker или просто скопировать исполняемый файл непосредственно в более тонкий образ.


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/*
0 голосов
/ 29 января 2019

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

Это не совсем минимально, если вы просто хотите использовать образ во время выполнения, так как в этом случае вам не понадобится стек.

...