Jenkins部署jar到docker中运行
首先需要安装Jdk,Jenkins,maven,git 等前置工具,还有jenkins的git,maven插件(最好再搞个汉化插件),这里就不一个一个写了,内容太多了,如果有需要评论,专门写一篇jenkins的安装以及插件的也可以。
然后如何你是使用的 腾讯云 会发新无论如何插件都是连接不上不能在线下载,只能离线上传,这个时候就需要把安全组的出口配置成允许所有(鬼知道为啥有这骚操作,当时恶心了我半天才找到的解决办法),其他云服务器不晓得如果也有这个问题可以试试这个办法。
- 1 因为要部署到Docker中首先要让jenkins用户有操作docker的权限,执行下面命令,将jenkins加入docker组
sudo gpasswd -a jenkins docker
- 2 配置jenkins全局工具,如果已经配置过了跳过下面步骤
- 3 生成ssh私钥
ssh-keygen -t rsa -C "xxxx@qq.com"
- 4 然后将rsa私钥里的全部内容复制进来,包括注释,在这添加ssh凭证,让jenkins有权限可以去pull代码,同时把公钥在git上加一份
- 5 这个时候就可以新建一个任务了(这里app我已经创建过了),构建一个maven项目
- 6 在配置里选择github项目,这里的url就是平时克隆的那个url
然后分支一般就是master,可以添加别的分支
然后就是配置maven打包命令,和打包之后执行的脚本,这里应该给/usr/app 加上权限否则jenkins无法访问 - 7 然后写一个dockerfile,打包一个镜像备用,命名一定是Dockerfile
FROM kimicheng/jdk1.8.0_91 #基础镜像,随便一个jdk1.8就可以了
MAINTAINER 754369677@qq.com #作者
WORKDIR /app #设置docker容器的工作区
ENV LANG en_US.UTF-8 #设置编码这里可以不要也没问题
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
COPY app-0.0.1-SNAPSHOT.jar /app/app.jar #拷贝当前目录下的jar到docker容器中
EXPOSE 8787 #对外开放端口
CMD java -jar /app/app.jar #最后运行的命令
- 8 然后开始编写脚本,jenkins打好的包会在/var/lib/jenkins/workspace/目录下,以最开始创建的任务名称命名文件夹比如我的是/var/lib/jenkins/workspace/app/target/app-0.0.1-SNAPSHOT.jar
docker stop utfapp #先关闭docker 不用kill就是舒服
cp /var/lib/jenkins/workspace/app/target/app-0.0.1-SNAPSHOT.jar /usr/app #复制jenkins打包好的jar到当前目录下
chmod +777 app-0.0.1-SNAPSHOT.jar #加权限
docker rm utfapp #先删除容器
docker rmi utf8app #再删除镜像
docker build -t utf8app . #生成镜像,别忘了最后的.代表当前目录
docker run -d -p 8787:8787 --name utfapp utf8app #生成容器并运行
docker ps查看一下,容器已经运行了
然后docker logs utfapp(容器别名)
这样就OK了。