1.SDLC 与模型(简述)

1.SDLC 与模型(简述)

  • 瀑布:线性,文档多,不适应变化。
  • 敏捷:迭代+增量,早期交付,降低风险。

2.jdk和maven

bash 复制代码
mv /usr/local/jdk/ ./
mv /usr/local/maven/ ./

3. Windows 开发环境配置(仅关键代码)

3.1 Maven settings.xml 添加阿里云镜像

xml 复制代码
<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>central</mirrorOf>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

3.2 Spring Boot 项目 pom.xml 关键依赖

xml 复制代码
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

3.3 测试控制器 TestController.java

java 复制代码
package com.chenyan.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @GetMapping("/test")
    public String test() {
        return "我是my";
    }
}

4. GitLab 安装(命令汇总)

bash 复制代码
# 依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
systemctl enable sshd --now
systemctl enable postfix --now

# 防火墙
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

# 下载安装
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

# 修改配置(/etc/gitlab/gitlab.rb)
external_url 'http://192.168.100.153:82'
nginx['listen_port'] = 82

# 重载启动
gitlab-ctl reconfigure
gitlab-ctl restart
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload

5. 源码上传到 GitLab(命令)

bash 复制代码
# 全局配置
git config --global user.name "chen"
git config --global user.email "chen@qq.com"

# 克隆并推送
git clone http://192.168.100.153:82/chen_group/web_demo.git
cd web_demo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

6. Jenkins 部署(Docker 方式)

6.1 docker-compose.yml

yaml 复制代码
version: "3.1"
services:
 jenkins:
   image: jenkins/jenkins:2.346.3-lts-jdk8
   container_name: jenkins
   ports:
     - 8080:8080
     - 50000:50000
   volumes:
     - ./data/:/var/jenkins_home/

启动:docker-compose up -d

若权限错误:chmod 777 data/ 后重启。

6.2 更换 Jenkins 更新中心为清华源

文件:data/hudson.model.UpdateCenter.xml

xml 复制代码
<?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>

6.3 解决其他主机无法访问

bash 复制代码
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

7. Jenkins 全局工具配置(容器内路径)

  • JDK:/var/jenkins_home/jdk
  • Maven:/var/jenkins_home/maven

8. Jenkins 项目构建步骤(Pipeline 片段)

8.1 源码管理

  • Git 仓库 URL:http://192.168.100.153:82/chen_group/web_demo.git
  • 凭据:GitLab 用户 chen 的账号密码

8.2 构建步骤(Maven)

text 复制代码
clean package -DskipTests

8.3 构建后操作(SSH 发送 JAR)

  • 目标服务器:web(192.168.100.155)
  • 发送文件:target/*.jar/usr/local/test/

9. 目标 Web 服务器 Docker 环境

9.1 安装 Docker

bash 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl enable docker --now

9.2 镜像加速(/etc/docker/daemon.json

json 复制代码
{
  "registry-mirrors": [
    "https://09def58152000fc00ff0c00057bad7e0.mirror.swr.myhuaweicloud.com",
    "https://do.nark.eu.org",
    "https://dc.j8.work",
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.nju.edu.cn",
    "https://registry.docker-cn.com",
    "https://hub-mirror.c.163.com",
    "https://hub.uuaudc.top",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu",
    "https://docker.ckyl.me",
    "https://docker.aws19527.cn",
    "https://mirror.baidubce.com",
    "https://docker.lpanel.live"
  ]
}

9.3 Docker Compose 工具

bash 复制代码
chmod +x docker-compose
mv docker-compose /usr/local/bin/

10. 项目中的 Docker 文件(在 IDEA 中创建)

10.1 Dockerfile

dockerfile 复制代码
FROM openjdk:8
COPY demo-0.0.1-SNAPSHOT.jar /usr/local/
WORKDIR /usr/local
CMD java -jar demo-0.0.1-SNAPSHOT.jar

10.2 docker-compose.yml(用于构建和运行)

yaml 复制代码
version: '3.1'
services:
  mystest:
    build:
      context: ./
      dockerfile: Dockerfile
    image: mystest:v1.0
    container_name: mystest
    ports:
      - 8080:8080

11. Jenkins 构建后操作(部署到 web 并启动容器)

在 Jenkins 项目配置 → 构建后操作 → Send build artifacts over SSH,填写:

text 复制代码
cd /usr/local/test/docker
mv ../target/*jar ./
docker-compose down
docker-compose up -d --build

12. 参数化构建(支持 Git Tag)

  • 在 Jenkins 项目配置中,勾选"参数化构建过程",添加 Git Parameter ,名称设为 tag
  • 源码管理中选择"Git",并指定分支为 $tag
  • 添加构建步骤(置于 Maven 构建之前):
bash 复制代码
git checkout $tag
  • 之后在 GitLab 上打标签(v1.0, v2.0),构建时即可选择版本。

13. 清理虚悬镜像(放在构建后)

bash 复制代码
docker image prune -f
相关推荐
AOwhisky9 小时前
云原生 DevOps 工具链从入门到实战(第一期)——DevOps概述与GitLab部署——从理念到工具落地
运维·ci/cd·云原生·gitlab·开发·devops
lbb 小魔仙1 天前
Git + Python 项目工作流最佳实践:pre-commit、CI、CHANGELOG 自动化
git·python·ci/cd
MC皮蛋侠客2 天前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
diving deep2 天前
CI/CD
ci/cd
lxw18449125142 天前
PHP后端(CI框架方向)面试题库,分为基础必问、MySQL、Redis、工程运维、高阶加分、场景实操六大模块,适配该JD全部考点,附带标准答案
ci/cd·面试·php
heimeiyingwang4 天前
【架构实战】CI/CD流水线:从手动部署到一键上线
ci/cd·架构
小小测试开发7 天前
Promptfoo 源码级解析:LLM 评估框架的核心设计与 CI/CD 集成实践
人工智能·ci/cd
csdn_aspnet7 天前
GitHub Actions自动化运维实战,用CI/CD流水线实现测试、部署、安全扫描一体化
运维·安全·ci/cd·自动化·github
菩提树下的打坐7 天前
CI 中的测试分层:让金字塔真正落地
学习·ci/cd