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
相关推荐
liuyicenysabel12 小时前
从 0 到 1:一套 GitHub + GHCR + k3s 的全自动 CI/CD 流水线(Flask 项目实战)
ci/cd·flask·github
项目管理实用笔记17 小时前
CI/CD是什么?持续集成持续交付入门
运维·ci/cd·研发效能·项目管理·团队开发
l1t3 天前
DeepSeek总结的DuckDB在 CI 中为 release 和 glibc CLI 构建启用 LTO - #24225
开发语言·数据库·ci/cd·duckdb
天天喝旺仔3 天前
Docker 镜像瘦身实战:多阶段构建把体积缩小 90%
运维·后端·ci/cd·docker·云原生·容器·性能优化
小小测试开发4 天前
RAG评测指标实战:忠实度、上下文精确率/召回率从原理到CI落地
android·人工智能·spring boot·ci/cd
明月_清风5 天前
GitHub Actions 从入门到实战:一文搞懂 CI/CD 自动化
后端·ci/cd·github
隔窗听雨眠5 天前
CI/CD测试数据清理完全指南:从污染根因到三层清理覆盖的完整方案
java·数据库·ci/cd
极小狐5 天前
从 GitLab Flow 到 Pipeline:分支策略 + CI/CD + 运维一文打通
ci/cd·gitlab·devops·极狐gitlab
玹外之音5 天前
Codex CLI 非交互模式:把 AI 接入你的 CI/CD 流水线
人工智能·ci/cd·交互