Я хочу запустить конвейер Дженкинса в контейнере docker, как все тесты, выполнение сонарного сканирования и т. Д. c.
Вот так выглядит мой конвейер.
pipeline {
agent {
docker {
image 'node:10-alpine'
args '-u root:root'
}
}
stages {
stage('Checkout') {
steps {
sh 'node --version; cat /proc/1/cgroup; touch /root/my_file'
checkout(...)
}
}
stage('Run Unit Tests') {
steps {
sh '''
npm install --unsafe-perm
'''
}
}
}
}
Теперь в качестве вывода этого я вижу следующие журналы в консоли
+ cat /proc/1/cgroup
...
2:freezer:/docker/eeea802143ce0f1b4047650956e58624a0c38a5fbc601f189755a381dcf9c271
1:name=systemd:/docker/eeea802143ce0f1b4047650956e58624a0c38a5fbc601f189755a381dcf9c271
Это означает, что команда выполняется в контейнере docker. Также я вижу, что /root/my_file
не существует на хосте.
Теперь, далее, я вижу следующий вывод
+ npm install --unsafe-perm
> libpq@1.8.8 install /home/jenkins/mount-dir/workspace/test-docker-pipeline/api/node_modules/libpq
> node-gyp rebuild
Теперь я вижу, что в журнале упоминается каталог, который присутствует на хосте.
Я сейчас запутался, где мой конвейер выполняется, внутри контейнера или инсайдера Дженкинса? Если в любом случае, почему я вижу противоречивые записи журнала?