標籤(空格分隔): docker的部分java
- 一:什麼是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 setup git config --global user.name "flyfish" git config --global user.email "yangyangsirit@163.com" Create a new repository git clone git@node05.flyfish: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 git@node05.flyfish: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 git@node05.flyfish:flyfish/java-project.git git push -u origin --all git push -u origin --tags
在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 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 << 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 ''' } }
訪問項目