Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
devops:nexus [2021/03/12 09:17] – created admindevops:nexus [2021/03/12 14:30] – [Скрипт] admin
Line 3: Line 3:
 У меня задача - создать локальный репозитрий, куда загрузить необходимые проектам зависимости. \\ У меня задача - создать локальный репозитрий, куда загрузить необходимые проектам зависимости. \\
 Итак. Я создал в nexus репозитрий **pypi hosted** и назвал его **pypi-local**. \\ Итак. Я создал в nexus репозитрий **pypi hosted** и назвал его **pypi-local**. \\
-В итоге - он доступен по адресу: http://repos.rdleas.ru/repository/pypi-local/ +В итоге - он доступен по адресу: http://repos.rdleas.ru/repository/pypi-local/  \\ 
 + 
 +====== Использование созданного репозитория ====== 
 +Для того, чтобы использовать созданный репозиторий нужно прописать его в файле **pip.conf**. В засисимости от обстоятельств, расположение этого файла может быть различным: https://pip.pypa.io/en/stable/user_guide/#config-file 
 +<code>[global] 
 +index = http://repos.rdleas.ru/repository/pypi-local/pypi 
 +index-url = http://repos.rdleas.ru/repository/pypi-local/simple 
 +#cert = nexus.pem</code> 
 + 
 +Если репозитрий защищен паролем, то учестные данные можно прописать в файле **.pypirc** 
 +<code>[distutils] 
 +index-servers = pypi 
 +[pypi] 
 +repository: http://repos.rdleas.ru/repository/pypi-local/ 
 +username: admin 
 +password: admin123</code> 
 + 
 +===== Как загружать пакеты в репозиторий pypi ===== 
 +https://packaging.python.org/tutorials/packaging-projects/#uploading-the-distribution-archives \\ 
 +Для того чтобы запушить пакет в созданный репозиторий воспользуемся **twine**. \\ 
 +Установим его: 
 +  sudo pip3 install twine 
 +Теперь можно аплоадить. Ключ **-r** (или **--repository**) указывает на репозитрий, прописанный в **.pypirc**: 
 +  twine upload -r pypi <filename> 
 + 
 + 
 +===== Скрипт ===== 
 +<code> 
 +#!/bin/bash 
 +set +e 
 +packages="./packages" 
 +proxy_user="user" 
 +proxy_pass="pass" 
 +sudo bash -c "pip3 install --proxy http://$proxy_user:$proxy_pass@10.77.70.6:3128 twine" 
 + 
 +while read -r package 
 +do 
 +  echo "+++++++++++++++++++++++ $package +++++++++++++++++++++++++" 
 +  bash -c "pip3 download --proxy http://$proxy_user:$proxy_pass@10.77.70.6:3128 $package" 
 +done < "$packages" 
 + 
 +for f in ./*.whl ./*.tar.gz 
 +do 
 + echo "Uploading $f" 
 + twine upload -r pypi $f 
 +done 
 +</code> 
  
  • devops/nexus.txt
  • Last modified: 2021/03/15 09:46
  • by admin