Я понял, что эта техника, которую я использовал в ОП, просто не будет работать. Большинству людей понадобится папка. git, чтобы оформить правильный коммит. Весь смысл клонирования всего репо заключался в кешировании, чтобы мы могли получить желаемый коммит позже в следующий раз, когда мы сделаем сборку.
Итак, вместо того, чтобы делать то, что я пытался сделать в OP, один Техника, которую я использовал в прошлом, чтобы получить хорошее кэширование и создавать небольшие изображения, была примерно такой:
WORKDIR /app
ADD 's3://url/to/just/package.json' /app/package.json
RUN npm install --production
ARG commit_id
RUN aws s3 cp -c . 's3://url/to/whole/tarball'
, поэтому вы можете кэшировать зависимости, если пакет. json не изменился, и когда вы делаете сборку, что вам пу sh, тощий tarball для s3 с TTL, а затем система сборки может вытянуть tarball к образу. У tarball нет папки git, и он может исключать кучу других файлов по желанию, которые обычно отслеживаются системой контроля версий.