docker安装Jenkins,基于Gitee部署项目总结

docker安装Jenkins

踩过的坑

  - docker安装的Jenkins在配置maven时有黄色的提示【不在挂载目录】
  - gitee 构建项目
  - Jenkins新建item后无法构建项目

参考文章

https://blog.youkuaiyun.com/qq_18153681/article/details/124767103 解决docker安装后导致无法使用maven拉取项目的问题
https://blog.youkuaiyun.com/weixin_44496396/article/details/126554111解决构建项目的前期配置,maven拉包配置
https://blog.youkuaiyun.com/u012702547/article/details/126156584
https://blog.youkuaiyun.com/weixin_46034375/article/details/127572547后续构建配置
https://blog.youkuaiyun.com/weixin_52911459/article/details/124477065脚本提供

部分图片也是直接cv过来的,如果有侵权什么的请联系删除
如果大家有其他方式欢迎分享!!!

安装Jenkins

1.选择的镜像版本

jenkins/jenkins:2.346.3-2-centos7-jdk8

2.构建容器

docker run -d \
-p 8080:8080 \
-p 50000:50000 \
-v /usr/local/src/jenkins:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--name jenkins \
jenkins/jenkins:2.346.3-2-centos7-jdk8

-v /usr/local/src/jenkins:/var/jenkins_home :挂载Jenkins的主目录

3.登录Jenkins
通过容器日志查看密码

安装Jenkins插件

Jenkins 在构建 maven 项目时,需要先安装 【Maven Integration】插件。
在这里插入图片描述
在这里插入图片描述

安装 Publish Over SSH 插件
在这里插入图片描述
在这里插入图片描述

安装git插件和gitee插件
在这里插入图片描述

安装git

通过yum命令安装即可,再配置一下。可以通过git命令拉取代码就行

安装maven

1.直接通过压缩包安装【简单一点】
2.然后将maven移动到Jenkins的挂载目录下【上文的/usr/local/src/jenkins】
在这里插入图片描述

切换阿里源

<mirror>
  <id>alimaven</id>
  <mirrorOf>central</mirrorOf>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
  <id>central</id>
  <name>Maven Repository Switchboard</name>
  <url>http://repo1.maven.org/maven2/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
  <id>repo2</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
  <id>ibiblio</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
  <id>jboss-public-repository-group</id>
  <mirrorOf>central</mirrorOf>
  <name>JBoss Public Repository Group</name>
  <url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
  <id>google-maven-central</id>
  <name>Google Maven Central</name>
  <url>https://maven-central.storage.googleapis.com</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<!-- 中央仓库在中国的镜像 -->
<mirror>
  <id>maven.net.cn</id>
  <name>oneof the central mirrors in china</name>
  <url>http://maven.net.cn/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

安装jdk

和maven的道理相同
不过看其他文章说Jenkins有默认的jdk也可以不用安装【没试过】
在这里插入图片描述

配置Jenkins全局工具配置

在这里插入图片描述

从容器中查看是否挂载成功【路径后面有用】
docker exec -it jenkins bash 进入容器
cd var/jenkins_home/ 进入目录
ls 查看

maven配置【注意:文件路径是Jenkins容器中的路径,并不是宿主机的路径】
在这里插入图片描述

jdk配置【注意:文件路径是Jenkins容器中的路径,并不是宿主机的路径】【可能可以不配】
在这里插入图片描述

git配置【这个路径就是宿主机的路径】
【注意】 /usr/local/git/bin/git 是 git 文件的路径,不是 git 的安装路径,如果使用 yum 或 dnf 安装的 git 会在 /usr/bin/git 路径下。
在这里插入图片描述

maven【注意:文件路径是Jenkins容器中的路径,并不是宿主机的路径】
在这里插入图片描述

系统配置

在这里插入图片描述

Gitee配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SSH配置【将jar包发到虚拟机上】

往下拉找到 Publish Over SSH,然后点击新增,开始配置,Hostname 位置填写你服务器的域名或者 IP

在这里插入图片描述

构建自动化部署

需要注意的是:只有在 Jenkins 中安装了 Maven Integration 插件,才会有【构建一个 maven 项目】的选项
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
注意:如果在安装 git 的时候,设置了保存用户名和密码,那么就不需要配置 【Credentials】 下的登录凭证信息,如果没有保存用户名和密码,就需要设置【Credentials】下的信息,下面是配置【Credentials】的步骤,已经保存账户名和密码可以忽略下面步骤
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GiteeHooks配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

继续构建配置

在这里插入图片描述
在这里插入图片描述

虚拟机需要的东西

1.start.sh脚本

# 源jar路径  
SOURCE_PATH=/usr/local/src/jenkins/workspace/ostomy/target
# Dockerfile路径,不用放在/target目录,因为每一次打包会重置target目录。当然,也可以是其他目录做相应更改
DOCKER_FILE_PATH=/usr/local/src/jenkins/workspace/ostomy   
# 容器id
CID=$(''docker ps | grep "ostomy" | awk '{print $1}''')
echo $CID
# 运行docker容器
function run(){
  echo "开始构建镜像..."
  cd $DOCKER_FILE_PATH
  echo "当前路径如下"
  pwd
  # 构建前判断是否存在镜像,存在则删除
  if [ -n "$CID" ]; then
    echo "存在demo容器,CID=$CID,重启docker容器 ..."
    # 停止容器运行
    sudo docker stop $CID
    # 删除容器
    sudo docker rm $CID
    # 删除镜像
    sudo docker rmi ostomy
    echo "删除镜像和容器成功,下面开始构建新镜像"
  else
    echo "不存在ostomy容器,下面直接开始构建镜像"
  fi
  # 构建镜像
  docker build -t ostomy .
  echo "创建容器成功"
  docker images
  # 杀死特定端口进程
  # mypid=$(netstat -apn|grep 9001|awk '{print $7}'|cut -d/ -f1);
  # echo $mypid
  # kill -9 $mypid
  docker run -d --restart=always --name ostomy -p 8081:8081  ostomy 
}
 
#入口
run

2.Dockerfile脚本

FROM java:8
MAINTAINER xiaobai
WORKDIR  /project
COPY ./target/ostomy.jar /project/ostomy.jar
CMD ["java","-Duser.timezone=Asia/Shanghai","-jar","ostomy.jar","-Dfile.encoding=utf-8"]

构建即可

在这里插入图片描述

可能遇到的问题

  • Exec exit status not zero. Status [126]
    原因: 对应的.sh 脚本权限不足,修改需执行的脚本权限即可
 chmod +777 start.sh
你可以按照以下步骤在Docker安装Jenkins部署Gitee: 1. 首先,确保你已经安装DockerDocker Compose。你可以在终端运行 `docker --version` 和 `docker-compose --version` 来检查它们的版本。 2. 创建一个名为 `docker-compose.yml` 的文件,并添加以下内容: ```yaml version: '3' services: jenkins: image: jenkins/jenkins:lts ports: - 8080:8080 volumes: - ./jenkins_home:/var/jenkins_home restart: always ``` 这将使用Jenkins官方的LTS映像,并将Jenkins容器的端口映射到本地的8080端口。同时,它还将创建一个名为 `jenkins_home` 的目录,用于持久化Jenkins数据。 3. 在终端中,进入包含 `docker-compose.yml` 文件的目录,并运行以下命令来启动Jenkins容器: ```shell docker-compose up -d ``` 这将下载并启动Jenkins容器。你可以通过访问 `http://localhost:8080` 在浏览器中访问Jenkins。 4. 在Jenkins的初始设置向导中,你需要提供管理员密码以解锁Jenkins。你可以通过运行以下命令来获取密码: ```shell docker logs jenkins ``` 在输出中,你将找到初始管理员密码。复制并粘贴它到向导中。 5. 完成Jenkins的初始设置向导后,你可以安装一些必要的插件,并设置管理员用户的凭据。 6. 接下来,你需要配置Gitee的Webhook以触发Jenkins构建。在Gitee仓库的设置中,找到Webhooks选项,并添加一个新的Webhook。将Payload URL设置为 `http://<your-jenkins-url>/gitee-webhook/post`,将Content-Type设置为 `application/json`,并选择要触发构建的事件。 7. 最后,你可以创建一个Jenkins任务来拉取代码并构建你的项目。在Jenkins主页上,点击“新建任务”,配置你的项目的相关信息,例如源代码管理、构建步骤等。 这样,当有新的事件触发Gitee webhook时,Jenkins将拉取代码并执行构建任务。 希望这些步骤对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值