1.通过docker-compose启动Jenkins容器
1.1任一文件夹建立docker-compose.yml,内容如下
version: "3.1"
services:
jenkins:
image: jenkins/jenkins:lts
volumes:
- /data/jenkins/:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
- /usr/local/java/:/usr/local/java/
ports:
- "8080:8080"
- "8082:8082"
expose:
- "8080"
- "50000"
privileged: true
user: root
restart: always
container_name: jenkins
environment:
JAVA_OPTS: '-Djava.util.logging.config.file=/var/jenkins_home/log.properties'
2.2执行命令
docker-compose up
2.在浏览器输入localhost:8080进入Jenkins配置页面
2.1安装插件(新手直接点安装推荐插件)
2.2创建一个管理员的用户,完成后点击保存并继续
2.3直接点击保存并继续
2.4 进入界面就代表成功(版本不同,界面可能有差异)
3.安装插件(点击左边栏中系统管理,然后找到插件管理,选择available plugins,进行搜索并安装)
3.1Deploy to container
3.2 Maven Integration
4.全局工具配置
4.1 jdk(JAVA_HOME路径自己更改,也可以选择下面的自动安装)
4.2Maven
5.新建任务(回到Jenkins首页,应该能找到,然后输入任意名称,点击构建一个Maven项目)
5.1源码管理(1处输入gitee仓库url,2处添加gitee账号,点击3选择对应账号)
5.2 build
5.3 Post Steps(输入一下shell脚本)
SERVER_NAME=dockerspringboot
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
# 构建docker镜像
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME镜像,IID=$IID"
docker stop $SERVER_NAME # 停止运行中的容器
docker rm $SERVER_NAME ##删除原来的容器
docker rmi $IID ## 删除原来的镜像
else
echo "不存在$SERVER_NAME镜像,开始构建镜像"
fi
mvn docker:build
echo "当前docker 镜像:"
docker images | grep $SERVER_NAME
echo "启动容器----->"
docker run --name dockerspringboot -p 8083:8082 -d $SERVER_NAME echo "启动服务成功!"
这里需要注意
1.gitee仓库代码中的pom.xml文件中要有Docker maven plugin
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>dockerspringboot</imageName><!--[a-z 0-9] 不然docker:build会报错-->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2.同时项目文件中要有一下路径及Dockefile文件(路径要一模一样),Dockefile代码见下
FROM java:8-jre
VOLUME /tmp
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
最后点击立即构建