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
相关推荐
heimeiyingwang7 小时前
【CI/CD·落地篇】企业级 CI/CD 平台搭建路线图:从规划到落地
ci/cd
zoe驿鹿13 小时前
【CI/CD】前端工程化与自动化:从“手工作坊”到“现代化工厂”的演进之路
前端·ci/cd·自动化
heimeiyingwang2 天前
【CI/CD·Actions篇】进阶实战:复合 Action 开发与 Marketplace 利用
ci/cd
智脑API3 天前
Claude Code sandbox.failIfUnavailable 怎么用?沙箱启动失败、拒绝降级和 CI 安全
安全·ci/cd
小小测试开发4 天前
Trace 驱动回归:把线上 Agent 故障变成 CI 门禁的四步管道
人工智能·ci/cd·数据挖掘·回归
汪海游龙4 天前
告别 Play Console 手动上传:从模拟器截图到自动发版的完整流水线
android·ci/cd·github
minhuan4 天前
大模型应用CI/CD全流程解析:打通模型训练、评估、部署自动化,应用持续迭代实践23.7
ci/cd·自动化·大模型应用·大模型应用ci/cd全流程解析·大模型应用工程体系
凌云拓界5 天前
NodeVerdict | 性能门禁:把追踪数据变成 CI 规则
ci/cd·信息可视化·开源·node.js·bug·数据可视化·安全架构
空谷有来人6 天前
springcloud中配置ci/cd集成docker的配置文件
spring cloud·ci/cd·docker
key_3_feng7 天前
AI Native 下企业 CI/CD 最佳实践:AI 驱动的流水线设计与落地细节
人工智能·ci/cd