Jenkins+Docker部署Maven聚合工程

时间:2019-05-21 00:34:08   收藏:0   阅读:256

这几天,把公司的预发布环境,改成docker部署,遇到了一些坑,有jenkins里的部署脚本的问题,也有harbor仓库的问题,还有docker远程访问的问题,还有DooD....一堆坑
技术分享图片

Jenkins里,没有直接安装在Centos7上,是用的docker安装的jenkins

1.安装Docker

这个就简单了,随便都可以搜到,这里只是贴我安装的命令

# 卸载旧版本
sudo yum remove docker docker-client  docker-client-latest  docker-common  docker-latest  docker-latest-logrotate  docker-logrotate  docker-selinux  docker-engine-selinux  docker-engine
                  
# 安装
sudo yum install -y yum-utils  device-mapper-persistent-data  lvm2
           
# 添加yum源
sudo yum-config-manager --add-repo  https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
    
# 安装
yum makecache fast
yum -y install docker-ce

启动
systemctl enable docker
systemctl start docker

2.安装Docker版本的Jenkins

先这样安装,在用Jenkins打镜像包的时候,就会有DooD的问题

docker run -d     -v /var/run/docker.sock:/var/run/docker.sock     -v $(which docker):/usr/bin/docker 
    -p 8080:8080     jenkins

访问:http://localhost:8080,安装插件,设置管理员密码

3.介绍项目的目录,以及写Dockerfile

1.这里是用的是Maven的聚合工程

技术分享图片

2.Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD admin-server-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

admin-server-0.0.1-SNAPSHOT.jar就是,maven打完包的包名

3.Maven的pom.xml配置

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.13</version>
    <configuration>
        <imageName>springboot/${project.artifactId}</imageName>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

4.新建Jenkins配置

配置Git仓库
技术分享图片

技术分享图片

技术分享图片

技术分享图片

然后再运行

5.出现的问题

如果docker run jenkins 没有指定

-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker 

这里就不能打包,就是因为在jenkins里的容器中,没有安装对象,使用了-v ,就是把jenkins里所需要的docker映射到宿主docker中

6.小结

这里只是在Centos7的一台服务器里,安装了docker,运行了jenkins容器,在jenkins容器中,打包镜像,然后再同一台服务器中运行,使用生产中,并不会用这样的方式,下一篇就写使用harbor仓库,安装仓库也是很简单,只是在docker与docker,docker与仓库之间的通信需要https请求,遇到的问题

7.参考的博客

1.解决是DooD的问题:http://www.up4dev.com/2018/11/27/run-docker-by-jenkins-in-docker/
2.更多可访问我的博客:https://yanganlin.com

原文:https://www.cnblogs.com/yal950727/p/10897481.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!