В настоящее время используется Jenkins Blue Ocean, чтобы попытаться настроить новый конвейер. Это проект на основе узлов, и я успешно запускаю npm install
в Dockerfile, однако на последующих этапах конвейера не отображается установленный node_modules
. Это довольно странное поведение.
Jenkinsfile.
pipeline {
agent {
dockerfile {
filename 'Dockerfile.prod'
}
}
stages {
stage('Test') {
steps {
sh 'ls node_modules'
}
}
}
}
Dockerfile.prod
FROM node:8
ADD . /var/www
WORKDIR /var/www
RUN ["npm", "install"]
Во время сборки Dockerfile:
Step 4/4 : RUN ["npm", "install"]
---> Running in de3cd138a40e
...
added 1283 packages in 39.842s
Removing intermediate container de3cd138a40e
На этапе test
файла Jenkins:
+ ls node_modules
ls: cannot access node_modules: No such file or directory
ls node_nodules
команда выполняется внутри контейнера? ВашDockerfile
устанавливает все зависимости внутри образа Docker, и поэтому они недоступны снаружи без запуска контейнера. - person Igor Nikolaev   schedule 29.12.2018