标签 (空格分隔): docker 的部分
一: 什么是 CI/CD
二: 发布流程设计
三: 部署 Git 仓库并上传测试代码
一: 什么是 CI/CD
持续集成 (Continuous Integration,CI): 代码合并, 构建, 部署, 测试都在一起, 不断地执行这个过程, 并对结果反馈.
持续部署 (Continuous Deployment,CD): 部署到测试环境, 预生产环境, 生产环境.
持续交付 (Continuous Delivery,CD): 将最终产品发布到生产环境, 给用户使用.
CI/CD 的 流水线特点:
高效的 CI/CD 环境可以获得:
? 及时发现问题
? 大幅度减少故障率
? 加快迭代速度
? 减少时间成本
二: 发布流程设计
三: 部署 GitLab 并上传代码
参照文档: https://blog.51cto.com/flyfish225/2145495
在 node05.flyfish 上面部署 GitLab
- Git global setup
- Git config --global user.name "flyfish"
- Git config --global user.email "[email protected]"
- Create a new repository
- Git clone [email protected]:flyfish/java-project.Git
- cd java-project
- touch README.md
- Git add README.md
- Git commit -m "add README"
- Git push -u origin master
- Push an existing folder
- cd existing_folder
- Git init
- Git remote add origin [email protected]:flyfish/java-project.Git
- Git add .
- Git commit -m "Initial commit"
- Git push -u origin master
- Push an existing Git repository
- cd existing_repo
- Git remote rename origin old-origin
- Git remote add origin [email protected]:flyfish/java-project.Git
- Git push -u origin --all
- Git push -u origin --tags
四: 部署 jenkins
在 node06.flyfish 上面配置 jenkins
- tar -zxvf apache-tomcat-8.5.54.tar.gz
- mv apache-tomcat-8.5.54 /usr/local/tomcat
- cd /usr/local/tomcat/conf
VIM context.xml
---
在 tomcat 的 / conf/context.xml 中的 < Context > 中添加
- <!-- 这里单位是 KB-->
- <Resources cachingAllowed="true" cacheMaxSize="100000" />
- --- rm -rf /usr/local/tomcat/webapps/* mv jenkins.war /usr/local/tomcat/webapps/jenkins.war
- cd /usr/local/tomcat/bin/ ./startup.sh
http://192.168.100.16:8080/jenkins
jenkins 安装插件
更换下载安装源
https://updates.jenkins-zh.cn/update-center.json.
装一个 Pipeline
创建 一个从节点
创建任务
安装 maven
- node01.flyfish
- tar -zxvf apache-maven-3.5.0-bin.tar.gz
- mv apache-maven-3.5.0 /usr/local/maven
- VIM /etc/profile
- ---
- export MAVEN_HOME=/usr/local/maven
- export CLASSPATH=.:$MAVEN_HOME/jre/lib:$MAVEN_HOME/lib:$MAVEN_HOME/lib/tools.jar
- PATH=$PATH:$HOME/bin:$MAVEN_HOME/bin:
- ---
配置 maven 的 下载依赖包为阿里云的源
cd /usr/local/maven/conf
VIM settings.xml
在 < mirrors>.....<mirrors> 之间 加上 阿里云的源
- -----
- <mirror>
- <id>alimaven</id>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- ----
- mvn -version
无密码登录下载 代码
- cd .SSH/
- SSH-copy-id [email protected]
pipline 流水线语法:
- node ("jenkins-slave-100-11") { // 指定 Slave 标签
- // 拉取代码
- stage('Git Checkout') {
- Git credentialsId: '71eb6de5-abea-4416-a3ef-753efcdcaa98', url: 'http://node05.flyfish/flyfish/java-project.git' (这个地方需要用 Git 流水线生成用户名密码)
- }
- // 代码编译
- stage('Maven Build') {
- sh '''
- export JAVA_HOME=/usr/local/jdk
- /usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true
- '''
- }
- // 项目打包到镜像并推送到镜像仓库
- stage('Build and Push Image') {
- sh '''
- REPOSITORY=192.168.100.16/project/java-project:${Branch}
- cat> Dockerfile << EOF
- FROM 192.168.100.16/library/tomcat:v1
- RUN rm -rf /usr/local/tomcat/webapps/ROOT.war
- COPY target/*.war /usr/local/tomcat/webapps/ROOT.war
- CMD ["catalina.sh", "run"]
- EOF
- docker build -t $REPOSITORY .
- docker login -u flyfish -p Flyfish225 192.168.100.16
- docker push $REPOSITORY
- '''
- }
- // 部署到 Docker 主机
- stage('Deploy to Docker') {
- sh '''
- REPOSITORY=192.168.100.16/project/java-project:${Branch}
- docker rm -f java-project |true
- docker image rm $REPOSITORY |true
- docker login -u flyfish -p Flyfish225 192.168.100.16
- docker container run -d --name java-project -p 89:8080 $REPOSITORY
- '''
- }
- }
访问项目
来源: http://www.bubuko.com/infodetail-3507418.html