docker整合jenkins实现自动部署
程序员文章站
2024-03-19 08:08:10
...
docker整合jenkins
docker安装jenkins
# 下载镜像
docker pull jenkins/jenkins:lts
# 启动镜像
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts
- 出现下面问题
# 查找文件
find / -name 'hudson.model.UpdateCenter.xml'
# 进行修改
vi hudson.model.UpdateCenter.xml
# 将<url>https://updates.jenkins.io/update-center.json</url>替换
# 更改为国内的清华大学的镜像地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
# 或者更改为http://updates.jenkins.io/update-center.json,即去掉https中的s。
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
# 查看容器id,重启容器
docker ps
# 找到容器id CONTAINER ID
docker restart id
# 查看密码
docker logs jenkins
- 访问ip:8080,根据日志的密码进入
第一次安装Jenkins时没有添加用户和密码
Jenkins在安装完成后自动跳转至网页会有引导设置添加用户名密码以及URL等
可能直接跳过了引导
不过密码是可以找到的
在Jenkins安装目录文件夹下找到secrets文件夹,点击进入
找到initialAdminPassword
右键选择Edit with Notepad++打开
里面的内容就是登录密码
复制
进入Jenkins登录界面
用户名admin
粘贴密码
登录
成功进入
项目部署到docker,jenkins构建
-
find / -name ‘docker.service’
-
在ExecStart=/usr/bin/dockerd添加-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
-
systemctl daemon-reload //重启虚拟机;systemctl restart docker //重启docker
-
ps -ef | grep 2375
-
在项目的pom.xml添加docker插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<imageName>spring/${project.artifactId}:${project.version}</imageName>
<!-- 配置docker地址 -->
<dockerHost>http://192.168.33.10:2375</dockerHost>
<baseImage>java:8</baseImage>
<entryPoint>["java", "-jar","/${project.build.finalName}.jar"]
</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
- 打包部署到docker上
- jenkins安装git、maven、ssh插件
- 系统管理->全局工具配置->maven->新增;系统管理->系统配置->SSH remote hosts
- 新建任务配置git,maven和脚本文件
#!/usr/bin/env bash
app_name='spring-study'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker run -p 8088:8088 --name ${app_name} \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d spring/${app_name}:0.0.1-SNAPSHOT
docker run -p 8088:8088 --name spring-study \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/spring-study/logs:/var/logs \
-d spring/spring-study:0.0.1-SNAPSHOT
- jenkins进行构建
通过natapp实现外网穿透
问题:github访问不了本机的webhook
解决:通过搭建ngrok或通过natapp注册隧道来实现外网访问
推荐阅读
-
docker整合jenkins实现自动部署
-
Jenkins自动构建部署项目到远程服务器上
-
springcloud服务器搭建-自动化部署docker+jenkins
-
jenkins实现resin远程部署 jenkinsresin远程部署
-
springboot docker jenkins 部署 对比 tomcat 博客分类: springspringbootjenkinsdocker springbootdockerjenkins部署tomcat
-
jenkins自动化部署应用到k8s(8):构建和上传镜像
-
jenkins 自动化远程部署——部署war包,jar包的bat命令
-
Spring Boot和Docker实现微服务部署的方法
-
详解jenkins自动部署springboot应用的方法
-
Maven+Tomcat8 实现自动化部署的方法