Без сервера: использование частного пакета Python в качестве зависимости
У меня есть проект Python Serverless, который использует частное Git (на Github) репо.
Файл Requirements.txt выглядит следующим образом:
itsdangerous==0.24
boto3>=1.7
git+ssh://git@github.com/company/repo.git#egg=my_alias
Конфигурации проекта в основном выглядят так
plugins:
- serverless-python-requirements
- serverless-wsgi
custom:
wsgi:
app: app.app
packRequirements: false
pythonRequirements:
dockerizePip: true
dockerSsh: true
При развертывании с помощью этой команды:
sls deploy --aws-profile my_id --stage dev --region eu-west-1
Я получаю эту ошибку:
Command "git clone -q ssh://git@github.com/company/repo.git /tmp/pip-install-a0_8bh5a/my_alias" failed with error code 128 in None
Что я делаю неправильно? Я подозреваю, как я настроил свой SSH-ключ для доступа к Github или как конфигурация пакета без сервера.
2 ответа
Таким образом, единственный способ, которым мне удалось разобрать эту проблему, был
- Сконфигурируйте SSH БЕЗ ПАСФРАЗЫ. Следующие шаги здесь.
- В
serverless.yml
Я добавил следующее:
custom:
wsgi:
app: app.app
packRequirements: false
pythonRequirements:
dockerizePip: true
dockerSsh: true
dockerSshSymlink: ~/.ssh
Обратите внимание, я добавил dockerSshSymlink
указать, где находятся файлы ssh на моей локальной машине; ~/.ssh
,
В
requirements.txt
Я добавил свою личную зависимость вот так:git+ssh://git@github.com/my_comp/my_repo.git#egg=MyRepo
Все работает.
Хотя и не рекомендуется. Вы пытались использовать sudo sls deploy --aws-profile my_id --stage dev --region eu-west-1
Эта ошибка также может быть создана с использованием неправильного пароля или ключа ssh.