Очень мало информации о процессе миграции данных из реп Artifactory в Nexus.
Номально это происходит (возможно) в полной платной версии, а в бесплатной приходится дико страдать.
Как выглядит процесс переноса данных:
в Artifactory идем в раздел Admin -> Import & Export -> Repositories и выгружаем нужную репу на файловую систему.
1. Репозиторий Yum/Raw загружается в Nexus простой командой:
find . -type f -name '*' -exec curl --user USER:PASS --upload-file {} https://NEXUS_URL/repository/npm-local/{} \;
2. NPM репозиторий перенести немного сложнее, нам понадобится контейнер с node js.
Docker-Compose.yml
version: "3"
services:
node:
image: "node"
container_name: "node"
volumes:
- "/export/repositories:/export/repositories" # директория, с выгруженными данными из Artifactory
command: sleep 1d
Команду экспорта можно подставить при запуске контейнера, но я расскажу как это делается руками:
2.1 находим наш контейнер и делаем
docker exec -it CONTAINER bash
2.2 переходим в директорию с экспортнутыми данными и запускаем:
export REPO_URL="https://NEXUS_URL/repository/npm-local/"
npm login --registry=$REPO_URL #авторизуемся в Nexus
#npm whoami --registry=$REPO_URL # проверить авторизацию
find . -type f -not -path '*/\.*' -name '*.tgz' -exec npm publish {} --registry $REPO_URL \;
Может возникнуть проблема с загрузкой NPM пакетов, связанная с безопасностью:
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://repos.ncloudtech.ru/api/npm/npm-local/@nct%2fapp-switcher - forbidden
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.
Решается она довольно просто:
находим сбойный пакет, правим в нем файл package.json
"publishConfig": {
"registry": "https://NEXUS_URL/api/npm/npm-local/",
}
Удаляем / изменяем ключ registry и повторяем загрузку данных
Комментариев нет:
Отправить комментарий