Это решение написано для Python, но, вероятно, оно так или иначе применимо к node.js, Java et c.
Я использую следующий обходной путь. Поначалу кажется, что это противоречит цели сборки в контейнере, но если ваши частные репозитории не скомпилированы изначально, все будет в порядке. Прямые зависимости, которые скомпилированы изначально, будут правильно установлены в контексте контейнера.
grep -v "git+" requirements.txt > public_requirements.txt
sam build --template-file "$TEMPLATE_FILE" --build-dir build --use-container --manifest public_requirements.txt
echo "Adding private dependencies"
grep "git+" requirements.txt | xargs python -m pip install --no-deps -t build/LambdaFunction/
Если ваши частные зависимости зависят от библиотек, которые скомпилированы изначально, вы можете добавить их во временные public_requirements.txt
, или установите их в другой контейнер, а затем скопируйте в build/LambdaFunction/
.