由于jenkins是在docker容器中启动的,那么就会出现无法获取到安装的宿主机的jdk和maven。
Jenkins本身要做持续集成,依赖会非常的重,而docker显然不适合这种依赖非常重的应用,这不是docker的使用场景。
那么如何操作呢,就需要在启动docker时进行一个目录的挂载,将宿主机中maven和jdk的目录直接挂载在docke容器中,但是此时我们的jenkins已经已经处于运行状态,docker并不支持在运行状态的容器进行目录的挂载。唯一的办法就是删除掉容器。重新来docker run一下,但是删除已经配置了大量文件的容器显得不是那么的划算,可以使用docker commit 容器名,镜像名来将容器固化成镜像,再来进行docker run,容器转为镜像时由于我们的强迫症思维,一定要保持和原镜像的名字保持一致,便将新生成的镜像改了个别名,进行docker rmi 镜像id 删除原镜像时发现如下错误:
意思就是这个镜像有个儿子,不能使用id这种遗传性的指标被死掉,可以使用docker ps 镜像名字 来成功干掉,删除原镜像之后,我们就要改名字了,将新生成的镜像的名字改为我们已经删掉的那个镜像的名字,强迫症害人不浅。
使用docker tag jenkinsci/blueoceans jenkinsci/blueocean
也就是docker tag 原镜像名 想要改的镜像名
此时你会发现出现了两个镜像id一样的镜像,那么删除那个不想要的,就ok了,
最后docker run时记得挂载目录。
http://dockone.io/question/831
先收着