我正在尝试使用Jenkins管道为我的Docker代理程序安装卷。以下是我的JenkinsFile:
pipeline {
agent none
environment {
DOCKER_ARGS = '-v /tmp/my-cache:/home/my-cache'
}
stages {
stage('Build') {
agent {
docker {
image 'my-image:latest'
args '$DOCKER_ARGS'
}
}
steps {
sh 'ls -la /home'
}
}
}
}
遗憾的是它无法运行,可以从pipeline.log文件中看到以下内容。
java.io.IOException: Failed to run image 'my-image:latest'. Error: docker: Error response from daemon: create /tmp/my-cache: " /tmp/my-cache" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.
但是,以下JenkinsFile 可以正常工作:
pipeline {
agent none
environment {
DOCKER_ARGS = '/tmp/my-cache:/home/my-cache'
}
stages {
stage('Build') {
agent {
docker {
image 'my-image:latest'
args '-v $DOCKER_ARGS'
}
}
steps {
sh 'ls -la /home'
}
}
}
}
唯一的区别是-v
标志是环境变量之外的硬编码。
我是Jenkins的新手,所以我一直在努力寻找有关此行为的任何文档。有人可以解释为什么我不能完全在环境变量中定义我的Docker代理args
吗?