I'm working on a CI Jenkins build with scripted pipeline. From Jenkins on one machine, I'm connecting with already configured Jenkins slave on another machine (M2). I'm able to successfully execute docker commands within the jenkins slave, however it seems that docker is unable to mount the volumes from the slave to the freshly started docker image.
node('testImage') {
... //do some job including creation of volumes within the "testImage" container
stage('Run WildFly instances') {
//run wildfly relevant
sh "docker run -d --restart=unless-stopped \
-v /some/path/to/volume/in/jenkins/slave/container:/some/path/to/volume/within/wildfly14/container \
-p 8380:8080 \
-p 9380:9990 \
-e JAVA_OPTS='-Xms256m -Xmx512m -Djava.net.preferIPv4Stack=true' \
--name wildfly14 \
${DockerRegistryBase}${WildflyImageName}:${WildflyImageVersion}"
}
/some/path/to/volume exists within the jenkins slave docker image, because it's created within the lifecycle of the pipeline, but the wildfly14 container that I'm trying to run is unable to access /some/path/to/volume, because when I run
docker exec -it wildfly14 ls -lR /some/path/to/volume/within/wildfly14/container
it's simply empty. Any suggestions on why is it even happening? I've noticed that the docker containers are set up outside of the jenkins slave container, on the actual machine (M2). Could it be the reason that docker tries to map a volume from outside of the container (/some/path/to/volume) on M2 instead of the location within the jenkins slave?