docker-compose 集成Jenkins部署,打包,发布

前言

需要提前准备的条件

1.git
2.Maven环境
3.Docker环境
4.JDK环境(Centos7.4自带JDK环境去除,重装的JDK)
5.Nodejs #前端发布使用

一、 jenkins部署

下载镜像

#查询镜像
docker search jenkins

在这里插入图片描述

#下载镜像
docker pull jenkins/jenkins

在这里插入图片描述

编写docker-compose.yml

version : '3'
services:
  jenkins:
    user: root
    restart: always
    image: jenkins/jenkins
    container_name: jenkins
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - /srv/jenkins/jenkins_home/:/var/jenkins_home/
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /etc/docker/daemon.json:/etc/docker/daemon.json
      - /usr/local/java/jdk1.8.0_161:/usr/local/java/jdk1.8.0_161
      - /usr/local/maven/apache-maven-3.9.1:/usr/local/maven/apache-maven-3.9.1
      - /usr/local/node13:/usr/local/node13
      - /root/.ssh:/root/.ssh

查询linux服务器中jdk,maven,nodejs的路径地址,挂载到jenkins容器的指定路径,如下图:
写法:-服务器路径:容器路径
图片内容说明将服务器中的jdk,maven,nodejs挂载到jenkins容器中
在这里插入图片描述- /root/.ssh:/root/.ssh 为ssh生成的密钥地址!!!

图中可以合并写成

    volumes:
      - /srv/jenkins/jenkins_home/:/var/jenkins_home/
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /etc/docker/daemon.json:/etc/docker/daemon.json
      - /usr:/usr  #将服务器usr目录挂载到jenkins容器的usr目录中
      - /root/.ssh:/root/.ssh

启动容器

Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,如有需要可以设置下载地址为国内镜像站

cd /home/jenkins_home/
cat hudson.model.UpdateCenter.xml 
# 修改数据卷中的hudson.model.UpdateCenter.xml文件
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
  </site>
</sites>
# 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

启动容器

#在docker-compose.yml所在目录启动
docker-compose up -d jenkins

访问Jenkins

在浏览器中输入:http://serverIp:port/访问jenkins,serverIp为docker宿主机的ip,port即为宿主机映射的端口。即:http://192.168.0.1:8080/

#日志查看
docker logs jenkins

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

#根据提示密码在/var/jenkins_home/secrets/initialAdminPassword这个文件中,注意这个路径是jenkins容器中的,所以我们通过如下命令获取一下
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
#如果查不到,可以通过find命令,进行全局搜索映射到服务器的initialAdminPassword的文件
find / -name "initialAdminPassword"

在这里插入图片描述

  • 安装插件
    在这里插入图片描述
  • 设置管理员信息
  • 配置jenkins路径(默认即可)
  • 进入首页
    在这里插入图片描述
    至此,Jenkins部署完成!!!

二、 jenkins打包,发布配置

安装插件

在这里插入图片描述

需要安装的插件:
1.NodeJs
2.SSH Pipeline Steps
3.Maven Integration

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

全局工具配置

在这里插入图片描述

全局配置包含maven,jdk,nodejs,配置中的路径为jenkins容器中的路径:
在这里插入图片描述
如有报错:
在这里插入图片描述请查看docker-compose.yml中配置是否正确
或者 进入jenkins容器
命令:java docker exec -it 容器id /bin/bash
在这里插入图片描述查看配置是否挂载到容器中,确认容器中的usr的maven,jdk,nodejs文件的路径是否和jenkins中路径一致

  • maven的settings.xml配置
    在这里插入图片描述
  • JDK配置
    在这里插入图片描述
  • Maven配置在这里插入图片描述
  • NodeJS配置(发布前端使用)
    如果没有,确认插件是否安装
    在这里插入图片描述

凭据配置

在这里插入图片描述

  • SSH类型
    gitssh凭证配置(拉取代码的时候使用)
    在这里插入图片描述

  • SSH密钥生成

SSH密钥生成
执行命令后,全敲回车 ssh-keygen -t rsa -C "git账号"在这里插入图片描述查看生成的密钥
在这里插入图片描述
id.rsa:私钥文件
id.rsa.pub:公钥文件
私钥配置到jenkins凭据中,公钥配置到git中
在这里插入图片描述

  • 账号密码类型
    目标服务器(需要发布代码的服务器)的凭证配置(上传jar包、前端文件时使用)在这里插入图片描述

发布服务-后端(仅供参考)

以发布 demo 为例:

  1. 在目标服务器上创建docker-compose.yml文件,dockerfile文件夹
    在这里插入图片描述
  2. 在dockerfile中新建 demo 的文件夹
    在这里插入图片描述
  3. 在 demo 新建Dockerfile
    在这里插入图片描述
# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER zz

# 挂载目录
VOLUME /home/front
# 创建目录
RUN mkdir -p /home/front
# 指定路径
WORKDIR /home/front
# 复制jar文件到路径
COPY ./demo.jar /home/front
# 启动认证服务
ENTRYPOINT ["java","-jar","demo.jar"]

  1. 在jenkins中新建任务-输入任务名称demo,选择流水线
    在这里插入图片描述流水线脚本配置
    在这里插入图片描述在这里插入图片描述
  2. 运行项目
    在这里插入图片描述
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Docker Compose 部署 Jenkins 可以简化 Jenkins 的安装和配置过程,提高部署效率和可维护性。 以下是部署 JenkinsDocker Compose 文件示例: ``` version: '3' services: jenkins: image: jenkins/jenkins:lts ports: - "808:808" - "50000:50000" volumes: - jenkins_home:/var/jenkins_home environment: - JAVA_OPTS=-Djenkins.install.runSetupWizard=false networks: - jenkins_network volumes: jenkins_home: networks: jenkins_network: ``` 在该示例中,我们定义了一个名为 `jenkins` 的服务,使用了 Jenkins 官方提供的 `jenkins/jenkins:lts` 镜像。我们将 Jenkins 的 808 和 50000 端口映射到主机的同名端口,以便我们可以通过浏览器访问 Jenkins。我们还将 Jenkins 的数据目录 `/var/jenkins_home` 挂载到了 Docker 卷 `jenkins_home` 中,以便我们可以在容器重启后保留 Jenkins 的配置和数据。我们还设置了一个环境变量 `JAVA_OPTS=-Djenkins.install.runSetupWizard=false`,以禁用 Jenkins 的安装向导。最后,我们将 Jenkins 容器连接到一个名为 `jenkins_network` 的 Docker 网络中。 要部署 Jenkins,只需在包含上述 Docker Compose 文件的目录中运行以下命令: ``` docker-compose up -d ``` 该命令将启动 Jenkins 容器,并将其连接到 `jenkins_network` 网络中。我们可以通过浏览器访问 `http://localhost:808` 来访问 Jenkins。在第一次访问时,我们需要输入初始管理员密码,该密码可以在容器日志中找到。输入密码后,我们可以按照向导完成 Jenkins 的配置。 希望这个回答对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值