Jenkins+docker+nginx快速搭建服务

1.下载jdk1.8

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

2.修改配置变量

vi /etc/profile

3.配置环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar‘

4.生效

source /etc/profile

5.安装maven

   上传maven安装包
   tar -xf apache-maven-3.6.1-bin.tar.gz 
   mkdir -p /opt/maven 
   mv apache-maven-3.6.1 /opt/apache-maven-3.6.1 

6.修改maven环境变量

   vi /etc/profile
   
   需要依赖jdk
   export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
   export MAVEN_HOME=/opt/apache-maven-3.6.1
   export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bi

7.修改Maven的settings.xml

    # 创建本地仓库目录
    mkdir /opt/repo
     
    修改权限:chmod -R 777 /opt/repo
   
    vi /opt/maven/conf/settings.xml

    修改为本地仓库地址
    <localRepository>/root/repo</localRepository>
 
    更换镜像
     <mirror>
      <!-- 此镜像的唯一标识,用来区分不同的mirrors元素 -->
      <id>nexus-aliyun</id>
      <!-- 被替代仓库的名称(对应上面查找到的默认仓库id) -->
      <mirrorOf>central</mirrorOf>
      <!-- 镜像名称,随意 -->
      <name>Nexus aliyun</name>
      <!-- 镜像URL -->
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

8.服务器上安装git

yum -y install git
# 查看git版本
git --version

9.安装docker

https://editor.csdn.net/md/?articleId=118154338

11.安装OpenJDK

yum install -y java-1.8.0-openjdk
java -version

10.安装jenkins

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.346-1.1.noarch.rpm --no-check-certificate

11.修改jenkins端口号

进入此文件
vi /etc/sysconfig/jenkins
修改端口:
JENKINS_USER="root"
JENKINS_PORT="8888"

进入
cd /usr/lib/systemd/system
vim jenkins.service
修改
Environment="JENKINS_PORT=8889"

12 修改jenkins环境变量

vim /etc/init.d/jenkins

which java   # 运行后,java位置即为下文红圈中,我们需要填写的内容

修改环境 添加上一部得到到java环境路径
candidates="
/opt/jdk1.8/bin/java

配置文件生效
systemctl daemon-reload

设置开机启动
systemctl enable jenkins.service

systemctl start jenkins

systemctl status jenkins

systemctl stop firewalld 

systemctl disabled firewalld 

云服务器开启此端口

访问
http://192.168.6.20:8888

查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword

13.进入jenkins

1.跳过安装插件
2.创建管理用户
3.Jenkins —> Manage Jenkins> Manage Plugins,点击Advanced ,修改Update SiteURL,提交保存
复制这个到里面保存
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/
4.安装汉化插件
  搜索:chinese
5.创建一个新用户
  Manage Jenkins> Manage Users(管理用户) —> 新建用户
6.安装Credentials Binding插件
7.Manage Jenkins> Manage Credentials
8.添加一个gitee凭证 
   查看图片 https://img-blog.csdnimg.cn/6e6707a634b04f35b3a495afab2fcc27.png
   账号,密码为gitee的账号和密码  保存应用
9. Manage Jenkins> Global Tool Configuration-> JDK-> 新增JDK,
     查看图片 https://img-blog.csdnimg.cn/a74a3e9e2939457c986f0225dc973e19.png

   Jenkins> Global Tool Configuration-> Maven —–> 新增Maven,
     查看图片 https://img-blog.csdnimg.cn/1dfef0728f8d4a8cbcfcc115706a4781.png
     
   Jenkins> Global Tool Configuration-> Git—–> 新增Git,
   输入命令 在虚拟机中数据 which git 查看git安装地址复制进去
    查看图片 https://img-blog.csdnimg.cn/d5646d0f070e4651bbdfa9fa72d94fa3.png
10.安装Pipeline插件 Manage Jenkins —–> Manage Plugins-> 可选插件 —> 搜索Pipeline
11.创建一个流水项目 点击配置之后选择Git 复制仓库http路径
   https://img-blog.csdnimg.cn/87e67a6c761342469b118e3863b2590a.png
12.配置字符参数
   https://img-blog.csdnimg.cn/cd539da176a5486d89415bafe6d0bedf.png
   https://img-blog.csdnimg.cn/48169445af5c4c929ca96523e21016fa.png
13.选项参数
  https://img-blog.csdnimg.cn/137ec13cfaef4174829407b7672bb7e3.png

14.写入Jenkinsfile脚本

//git凭证ID
def git_auth = "4a0eec89-3642-4a8d-866f-2dec5713d030"
//git的url地址
def git_url = "https://gitee.com/helloworld-html/deploy-spring-cloud.git"
//镜像的版本号
def tag = "latest"

node {

   stage('拉取代码') {
      checkout([$class: 'GitSCM', branches: [[name: "*/${branch}"]],
      doGenerateSubmoduleConfigurations: false,
      extensions: [], submoduleCfg: [],
      userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
   }

   stage('编译,安装公共工程') {
           //编译,安装公共工程
       sh "mvn -f iyj-common clean install"
    }

   stage('编译,构建镜像') {
           // 定义镜像名称(项目名称+版本号)

            def imageName = "${project_name}-service:${tag}"

            sh "echo ${imageName}"

             //删除相同容器
            sh "/opt/jenkins_shell/removeContain.sh ${project_name}"

            sh "/opt/jenkins_shell/removeImage.sh ${imageName}"

            // 添加构建镜像的操作
            sh 'mvn -f ${project_name} clean package dockerfile:build'

            //启动容器
           //sh "docker run -d  -p ${port}:${port} --name ${project_name} ${imageName}"

           sh "docker run -d -e SPRING_PROFILES_ACTIVE=${spring_profiles} --name ${project_name} -p ${port}:${port} -v /data/log:/log  ${imageName}"
          }
}

15.写入删除镜像脚本


#! /bin/sh
PROJECT_NAME=$1
#容器名称
echo "$PROJECT_NAME"  
# 检查该进程是否正在运
num=`docker ps |grep -w $PROJECT_NAME|grep -v grep|wc -l`

if [ $num -gt 0 ]; then

##存在以前的进程,停掉
echo 'docker container ' $PROJECT_NAME ' progress is running'

## 停掉该进程
docker stop $PROJECT_NAME
echo 'stop container ' $PROJECT_NAME ' success'
fi
## 检查该容器是否存在
num=`docker ps -a |grep -w $PROJECT_NAME|grep -v grep|wc -l`
if [ $num -gt 0 ]; then
##容器存在,则删掉该容器
echo 'docker container ' $PROJECT_NAME ' container is exists'
## 删掉该容器
docker rm $PROJECT_NAME
echo 'remove container ' $PROJECT_NAME ' success'
fi

16.写入删除容器脚本

#!/bin/bash
#容器名称 iyj-basic-service:lastest
image_name=$1
if [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]];then
    ##容器存在,则删掉该镜像
   docker rmi -f  $image_name
   echo 'remove image success'
fi

虚拟机mysql安装:

https://blog.csdn.net/young_0609/article/details/109015666

要进bin目录下面执行
-bash: mysql: command not found

虚拟机redis安装:

https://zhuanlan.zhihu.com/p/34527270

安装nacos

CSDN收藏
https://blog.csdn.net/dagedeshu/article/details/109209157
https://blog.csdn.net/qq_42758288/article/details/108967672
https://blog.csdn.net/qq_42758288/article/details/108967808

前端部署

安装nginx

https://blog.csdn.net/t8116189520/article/details/81909574

如果是前后端项目需要修改nginx.conf里面的配置

https://img-blog.csdnimg.cn/fd800c8382f84669b60a323b73df8779.png

![在这里插入图片描述](https://img-blog.csdnimg.cn/7c460a33ecfa422bbc5750b36d9340f9.png)

代理增添:
       location /api/ {
             proxy_pass http://159.75.247.247:9002;
             proxy_set_header Host $http_host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             proxy_connect_timeout 30;
             proxy_send_timeout 60;
             proxy_read_timeout 60;
        }
开机启动
https://www.jianshu.com/p/ca5ee5f7075c
1.在服务器上安装nodejsV16.10.0
参考
https://blog.csdn.net/weixin_39385430/article/details/116306649
2.jenkins上配置
 进入全局工具设置:
  https://img-blog.csdnimg.cn/66bbf25f385f43fdbc29a57ed8db247a.png
3.
https://img-blog.csdnimg.cn/6cec706debae4ef6aeb219538244a9e4.png


脚本:
//git凭证ID
def git_auth = "4a0eec89-3642-4a8d-866f-2dec5713d030"

//git的url地址
def git_url = "https://gitee.com/helloworld-html/iyj-font.git"

node {

   stage('拉取代码') {
      checkout([$class: 'GitSCM', branches: [[name: "*/${branch}"]],
      doGenerateSubmoduleConfigurations: false,
      extensions: [], submoduleCfg: [],
      userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
   }

   stage('编译,打包') {
           //编译,安装公共工程
         nodejs('nodejs16'){
        sh '''
         cnpm install
         npm run build:prod
         rm -rf /opt/data/dist
         mv /var/lib/jenkins/workspace/iyj-ui/dist /opt/data
        ''' 
         }
    }
}

安装参考:jdk8

https://huaweicloud.csdn.net/63566b2dd3efff3090b5edef.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-1-127226397-blog-125572690.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-1-127226397-blog-125572690.pc_relevant_aa&utm_relevant_index=1

jdk11

https://geray-zsg.github.io/2022/03/Jenkins%E5%9F%BA%E7%A1%80-%E4%B8%80/#4-%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83-jenkins%E5%AE%89%E8%A3%85

问题总结

交换空间不足

https://www.coder.work/article/7312129
升级jenkins 
 下载war 替换掉原来的war 查找原来的war路径 查看jenkins的状态即可

下载插件基本插件

harbor的登录凭证


(java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied

chmod 777 /var/run/docker.sock

忽略

下载安装jdk1.8 或手动上传

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html


vi /etc/profile

配置环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar‘
生效
source /etc/profile

# OpenJDK部署
yum install -y java-1.8.0-openjdk
java -version

安装jenkins+jdk8

注意:jenkins最新版本仅支持jdk11 

jdk1.8需要下载
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.346-1.1.noarch.rpm --no-check-certificate

rpm -ivh jenkins-2.346-1.1.noarch.rpm

2、jenkins安装+jdk11

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install epel-release -y # 安装依赖(提供“daemonize”的存储库)
yum install java-11-openjdk-devel -y # 安装jdk
yum install jenkins -y # 安装Jenkins

任意服务器部署jar

https://blog.csdn.net/fen_fen/article/details/117048191

服务器之间拷贝jar

https://blog.csdn.net/JasonWeng/article/details/113574958

虚拟内存不足

https://blog.csdn.net/u014204541/article/details/102671182

完整项目实践

配置完成界面
在这里插入图片描述
IP参数设置
在这里插入图片描述
执行远程脚本命令
在这里插入图片描述
分支参数设置
在这里插入图片描述
jar包存放路径
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
构建命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
项目结构
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值