@zhangyy
2021-04-15T02:51:57.000000Z
字数 3031
阅读 435
docker的部分
- 一:什么是CI/CD
- 二: 发布流程设计
- 三:部署Git仓库并上传测试代码
持续集成(Continuous Integration,CI):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果反馈。持续部署(Continuous Deployment,CD):部署到测试环境、预生产环境、生产环境。持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用。
CI/CD 的 流水线特点:高效的CI/CD环境可以获得:• 及时发现问题• 大幅度减少故障率• 加快迭代速度• 减少时间成本


参照文档:https://blog.51cto.com/flyfish225/2145495在node05.flyfish 上面部署gitlab


Git global setupgit config --global user.name "flyfish"git config --global user.email "yangyangsirit@163.com"Create a new repositorygit clone git@node05.flyfish:flyfish/java-project.gitcd java-projecttouch README.mdgit add README.mdgit commit -m "add README"git push -u origin masterPush an existing foldercd existing_foldergit initgit remote add origin git@node05.flyfish:flyfish/java-project.gitgit add .git commit -m "Initial commit"git push -u origin masterPush an existing Git repositorycd existing_repogit remote rename origin old-origingit remote add origin git@node05.flyfish:flyfish/java-project.gitgit push -u origin --allgit push -u origin --tags

在node06.flyfish 上面配置jenkinstar -zxvf apache-tomcat-8.5.54.tar.gzmv apache-tomcat-8.5.54 /usr/local/tomcatcd /usr/local/tomcat/confvim 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.warcd /usr/local/tomcat/bin/./startup.sh



http://192.168.100.16:8080/jenkins


jenkins 安装插件更换下载安装源https://updates.jenkins-zh.cn/update-center.json。


装一个Pipeline




创建 一个从节点




创建任务




安装mavennode01.flyfishtar -zxvf apache-maven-3.5.0-bin.tar.gzmv apache-maven-3.5.0 /usr/local/mavenvim /etc/profile---export MAVEN_HOME=/usr/local/mavenexport CLASSPATH=.:$MAVEN_HOME/jre/lib:$MAVEN_HOME/lib:$MAVEN_HOME/lib/tools.jarPATH=$PATH:$HOME/bin:$MAVEN_HOME/bin:---配置maven 的 下载依赖包为阿里云的源cd /usr/local/maven/confvim 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 git@192.168.100.15

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 << EOFFROM 192.168.100.16/library/tomcat:v1RUN rm -rf /usr/local/tomcat/webapps/ROOT.warCOPY target/*.war /usr/local/tomcat/webapps/ROOT.warCMD ["catalina.sh", "run"]EOFdocker build -t $REPOSITORY .docker login -u flyfish -p Flyfish225 192.168.100.16docker push $REPOSITORY'''}// 部署到Docker主机stage('Deploy to Docker') {sh '''REPOSITORY=192.168.100.16/project/java-project:${Branch}docker rm -f java-project |truedocker image rm $REPOSITORY |truedocker login -u flyfish -p Flyfish225 192.168.100.16docker container run -d --name java-project -p 89:8080 $REPOSITORY'''}}









访问项目

