Здесь может быть вопрос новичка. Я экспериментировал со сборками Docker для своего проекта Meteor и заметил, что в репозитории this популярного базового образа автор предлагает использовать devbuild
во время разработки и onbuild
для производства.
devbuild
ONBUILD RUN bash $METEORD_DIR/lib/install_meteor.sh # install dependencies
ONBUILD COPY ./ /app
ONBUILD RUN bash $METEORD_DIR/lib/build_app.sh # build the app
vs onbuild
ONBUILD COPY ./ /app
ONBUILD RUN bash $METEORD_DIR/lib/install_meteor.sh # install dependencies
ONBUILD RUN bash $METEORD_DIR/lib/build_app.sh # build the app
Я предполагаю, что первый использует слой Docker возможность кэширования для ускорения сборки, и он предупреждает, что использование devbuild
для окончательной сборки приведет к гораздо большему образу, чем необходимо, поскольку он содержит полную установку метеора.
Это, похоже, противоречит тому, что я читал в руководствах вроде это из Docker Quickstart и this , в которых рекомендуется сначала установить зависимости, чтобы их можно было кэшировать.
Есть ли разница между ситуацией, представленной в справочнике Meteor, и руководствами по узлам, и как лучше всего построить эти зависимости в производственной среде?