2015-02-06 3 views
2

В настоящее время мы используем Nexus 2.10 и успешно использовали его в качестве репо для npm.Доступ к GitHub с использованием NPM на Sonatype Nexus

Построение локально через этот прокси/зеркало прекрасно работает, но при попытке запустить npm install на Bamboo (который не имеет доступа в Интернет) он терпит неудачу, поскольку некоторые пользователи пытаются добраться до GitHub, чтобы загрузить что-то, что не удается.

error 06-feb-2015 13:29:29 npm http 200 https://nexus.shdir.no/content/groups/npm-all/mkdirp/-/mkdirp-0.3.0.tgz 
error 06-feb-2015 13:29:30 npm http GET https://nexus.shdir.no/content/groups/npm-all/formidable 
error 06-feb-2015 13:29:30 npm http 200 https://nexus.shdir.no/content/groups/npm-all/formidable 
error 06-feb-2015 13:29:45 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz 
error 06-feb-2015 13:29:55 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz 
error 06-feb-2015 13:30:16 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz 
error 06-feb-2015 13:31:16 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz 
error 06-feb-2015 13:31:37 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz 
error 06-feb-2015 13:31:38 npm ERR! network connect ETIMEDOUT 
error 06-feb-2015 13:31:38 npm ERR! network This is most likely not a problem with npm itself 
error 06-feb-2015 13:31:38 npm ERR! network and is related to network connectivity. 
error 06-feb-2015 13:31:38 npm ERR! network In most cases you are behind a proxy or have bad network settings. 
error 06-feb-2015 13:31:38 npm ERR! network 
error 06-feb-2015 13:31:38 npm ERR! network If you are behind a proxy, please make sure that the 
error 06-feb-2015 13:31:38 npm ERR! network 'proxy' config is set properly. See: 'npm help config' 
error 06-feb-2015 13:31:38  
error 06-feb-2015 13:31:38 npm ERR! System Windows_NT 6.1.7601 
error 06-feb-2015 13:31:38 npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 
error 06-feb-2015 13:31:38 npm ERR! cwd E:\bamboo\UTV-FP-JOB1\code 
error 06-feb-2015 13:31:38 npm ERR! node -v v0.10.17 
error 06-feb-2015 13:31:38 npm ERR! npm -v 1.3.8 
error 06-feb-2015 13:31:38 npm ERR! syscall connect 
error 06-feb-2015 13:31:38 npm ERR! code ETIMEDOUT 
error 06-feb-2015 13:31:38 npm ERR! errno ETIMEDOUT 

Как мне решить эту проблему? Нужно ли добавлять каждое репо из github/bitbucket в Nexus?

ответ

1

Мы решили проблему, загрузив двоичные файлы вручную и добавив их на наш сервер Apache. Не будет весело при обновлении зависимостей, но не должно быть слишком плохо. Всего 3 файла.

Я был бы рад использовать лучшее решение, если кто-нибудь знает об этом.

0

Вы должны сделать Nexus доступным для вашего сервера Bamboo и настроить npm там, как на вашей рабочей станции. В зависимости от того, где Bamboo и Nexus установлены с точки зрения сетевой топологии, для выполнения различных этапов.

В идеале ваш менеджер хранилища и ваш сервер CI расположены совместно и высокопроизводительное соединение друг с другом. Это позволяет быстро загружать проксированные пакеты, а также быстро развертывать.

Вы можете, например, сделать свой Nexus доступным в общедоступном Интернете и заблокировать его, чтобы разрешить только аутентифицированный доступ, а затем использовать его так же, как Bamboo.

+0

Доступен Nexus, пакеты, расположенные на репо нерезидентов npm, достижимы от Bamboo. Это прямые HTTP-вызовы Github, которые взрываются. Можно ли сказать, например, все запросы https на github и bitbucket могут пройти прямо? Предоставить полный доступ к сети, вероятно, нет, хотя я еще не мог об этом спросить. И локально у нас есть полный доступ к Интернету. – SimenB