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