准备工作:
安装Jenkins
新建一个Jhipster项目
开始集成:
新建一个Jenkins构建项目
只配置源代码
构建,成功,稍微有点信心了
配置执行构建脚本
./mvnw package -Pprod -Dmaven.test.skip=true
构建失败,mvnw无执行权限
增加执行权限
chmod +x mvnw
构建成功
继续。。。
配置构建Docker镜像
./mvnw package -Pprod -Dmaven.test.skip=true docker:build
华丽丽的失败了,原因是jenkins服务是以jenkins用户运行的,而docker命令需要root用户,你妹的!
暴力法
把jenkins提升为管理员权限
修改/etc/sudoers文件,增加以下配置
jenkins ALL=NOPASSWD:ALL
继续构建!
我擦,打包都失败了。
bower插件提示我不要用root用户运行!!!
看样子这条路行不通啊
此处迷茫中。。。。
总结一下问题:
我们的jhipster构建脚本把docker打包插件也集成进去了,虽然方便是方便,但是对jenkins来说不太友好了。
那么把打包和docker分开?也许这是个好办法,事实证明确实如此。
好吧,让我们回到起点
chmod +x mvnw
./mvnw package -Pprod -Dmaven.test.skip=true
在网上搜索了一下,有个jenkins有个docker-build-step插件可以满足我们的需求
试一下,反正又不会怀孕。插件安装中。。。
插件安装之后,构建菜单中增加了一个Execute Docker Command的选项
非常简洁,我喜欢。
选择Create/build image
配置一下docker context folder
愤怒地按下立即构建!
从无数个的红灯中过来的人的心情你能理解吗?你能吗?
结果还是失败,fuck!