公共构建机启动容器过程:
init.sh -> docker_init.sh 容器启动是先执行挂载到容器的init.sh 脚本, 去下载docker_init.sh 脚本然后执行起一个java进程
结合脚本的内容,镜像需要满足以下2个条件,支持curl命令、支持java命令
用户通过挂载的方式把jdk挂载到容器内。实际上在执行docker_init.sh时,挂载的java变量未开始读取,因此执行java命令会失败,导致启动失败。
因此镜像中需要自带jdk, 用于worker-agent.jar 的执行, job挂载的工具是在bash的命令执行之前export进去。
解决方案
把jdk打入自定义镜像中,保证可以执行curl命令和java命令后再尝试启动。