Я пытался запустить локальный конвейер Jenkins, используя Jenkinsfile для приложения nodejs, используя node: 6-alpine image (по умолчанию), используя сценарий build.sh, использующий вызов npm install, затем я получил следующую ошибку разрешения
нпм ERR! Ошибка: EACCES: разрешение отклонено, mkdir '/.npm'
нпм ERR! по ошибке (родной)
нпм ERR! {Ошибка: EACCES: разрешение отклонено, mkdir '/.npm'
нпм ERR! по ошибке (родной)
нпм ERR! ошибка: -13,
нпм ERR! код: 'EACCES',
нпм ERR! системный вызов: 'mkdir',
нпм ERR! путь: '/.npm',
нпм ERR! parent: 'my-app'}
нпм ERR!
нпм ERR! Пожалуйста, попробуйте снова запустить эту команду как root / Administrator.
Docker версия 18.09.6, сборка 481bc77
Дженкинс работает локально
Я пытался установить sudo npm, но та же ошибка. Я также пытался изменить образ docker argv для -u root: sudo -p 3000: 3000 та же ошибка
Jenkins file image:
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000'
}
environment {
HOME = '.'
}
}
скрипт build.sh
sudo npm install --unsafe-perm = true --allow-root
Сообщение об ошибке: npm ERR! Ошибка: EACCES: разрешение отклонено, mkdir '/.npm'
Ожидаемый результат: создать Docker-контейнер с открытым портом 3000 и приложением nodejs на локальном хосте: 3000
Фактический результат: ошибка разрешения внутри контейнера.