Ну, моя проблема:
У меня есть общая папка emptyDirVolume(mountPath: '/home', memory: false),
и я запускаю автоматические тесты файла docker, и эти тесты сохраняются в папке в домашнем каталоге контейнера docker. Что я хочу сделать, так это поделиться этим каталогом с узлом контейнера, чтобы загрузить результаты в другой контейнер с gsutils
.
То, что я делаю, это docker run -v /home:/home/tests test
, но домашний каталог контейнера узла пуст. Я локально проверил свой dockerfile и работает, это выполнимо?
Я опубликую код jenkinsfile и файла docker.
JENKINSFILE:
GString podName = "${name}-${UUID.randomUUID().toString()}"
podTemplate(name: "jnlp",
label: podName,
namespace: "jenkins",
containers: [
containerTemplate(name: 'node', image: 'gcr.io/xyz', ttyEnabled: true),
],
volumes: [
hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker'),
hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
emptyDirVolume(mountPath: '/home', memory: false),
secretVolume(secretName: 'kube-jenkins-gcloud-secret', mountPath: '/usr/opt/gcloud/.config')
])
{
node(podName) {
//stageWithSlackNotification() {
stage('build docker image') {
checkout scm
container('node') {
sh "docker build -t test ."
}
}
stage('test') {
checkout scm
container('node') {
currentBuild.displayName = env.BUILD_NUMBER
currentBuild.description = env.BUILD_NUMBER
sh "docker run -v /home:/home/tests test"
}
}
stage('testv2') {
checkout scm
container('node') {
sh "ls /home"
}
}
//}
}
}
DOCKERFILE
FROM gcr.io/xyz
# Create app directory
RUN mkdir -p /usr/opt/hold-ats
WORKDIR /usr/opt/hold-ats
COPY package* ./
RUN npm install
COPY src src
RUN mkdir -p /home/tests
CMD ["./node_modules/.bin/newman", "run", "src/collections/smoke_tests.json", "-e", "src/environments/dev.json", "--reporter-htmlextra-export", "/home/tests" ,"--reporter-htmlextra-darkTheme", "--reporter-htmlextra-testPaging", "-r", "htmlextra"]
Кто-нибудь знает?
Спасибо!