日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

目錄
  • 安裝Jenkins
  • 配置
    • 1、配置工具
    • 2、配置Publish over SSH
    • 3、編譯構(gòu)建
    • 4、推送jar包
  • 構(gòu)建鏡像

    老板給了兩臺(tái)服務(wù)器,一臺(tái)windows用來(lái)打包,一臺(tái)linux用于構(gòu)建鏡像 + 部署,于是有了這篇筆記

    安裝Jenkins

    下載地址:https://www.jenkins.io/download/

    找到對(duì)應(yīng)版本下載安裝就行,裝好之后在瀏覽器輸入localhost:port(port是你安裝時(shí)設(shè)置的端口),看到如下頁(yè)面:

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    就說(shuō)明裝好了,然后用安裝的時(shí)候設(shè)置好的賬號(hào)密碼登錄

    配置

    1、配置工具

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    進(jìn)入頁(yè)面后首先是添加maven的配置文件:

    maven配置文件

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    然后配置工具:

    jdk

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    git

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    maven

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    配置好之后應(yīng)用保存

    2、配置Publish over SSH

    這一步是為了把文件推送到遠(yuǎn)程服務(wù)器,不需要的可以跳過(guò)

    首先去插件商店安裝publish over ssh

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    進(jìn)入之后搜索publish over ssh,然后安裝

    安裝完成后進(jìn)入系統(tǒng)配置,拉到最下面,就可以看到publish over ssh的配置了

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    配置完之后同樣應(yīng)用保存

    創(chuàng)建流水線打包

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    配置自動(dòng)觸發(fā)的條件,不勾就是手動(dòng)觸發(fā)咯

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    然后就是最重要的流水線語(yǔ)法了

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    可以點(diǎn)擊這里幫助生成

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    下拉框那里,如果是linux命令選擇sh:xxx
    window命令選擇bat:xxx
    git命令選擇git:xxx
    publishSSH選擇SSH Publishers:XXX

    以下是我流水線示例:

    pipeline {
        agent any 
        stages {
            stage('拉取代碼') {
                steps {
                    checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'xxx', url: 'http://XXX.git']]])
                    echo '拉取代碼成功'
                }
            }
            stage('編譯構(gòu)建') {
                steps {
                    //輸出當(dāng)前jenkins的工作目錄
                    echo "${env.WORKSPACE}" 
                    //僅打包file-service模塊
                    bat 'mvn clean package -pl file-service -am'
                    echo '編譯成功'
                }
            }
            stage('推送jar包') {
                steps {
                    sshPublisher(publishers: 
                        [sshPublisherDesc(
                            configName: 'ssh253', 
                            transfers: [sshTransfer(
                                cleanRemote: false, 
                                excludes: '', 
                                execCommand: '''cd local/file
                                            ./start.sh''', 
                                execTimeout: 120000, 
                                flatten: false, 
                                makeEmptyDirs: false, 
                                noDefaultExcludes: false, 
                                patternSeparator: '[, ]+', 
                                remoteDirectory: 'file', 
                                remoteDirectorySDF: false, 
                                removePrefix: 'file-service\\target\\', 
                                sourceFiles: 'file-service\\target\\file-service-1.0-SNAPSHOT.jar'
                            )], 
                            usePromotionTimestamp: false, 
                            useWorkspaceInPromotion: false, 
                            verbose: false
                        )])
                }
            }
        }
    }
    

    1、stage表示流水線每一步的名字,執(zhí)行之后是這個(gè)樣子:

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    2、拉取代碼
    credentialsId:你配置的憑證id
    配置憑證

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    查看憑證

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    url:你的git項(xiàng)目地址

    3、編譯構(gòu)建

    使用maven進(jìn)行打包的命令而已

    4、推送jar包

    我是用流水線語(yǔ)法生成器生成的

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    Source files: 要發(fā)送的源文件位置,表示當(dāng)前工作空間下的file-service\target\file-service-1.0-SNAPSHOT.jar包,\是windows上的路徑寫(xiě)法,如果要發(fā)送整個(gè)文件,則使用/* *
    Remove prefix: 去除的前綴,表示只要文件不要目錄,如果不去除,那么文件復(fù)制到服務(wù)器上后會(huì)生成file-service\target\目錄
    Remote directory: 遠(yuǎn)程機(jī)的路徑,這個(gè)路徑是以系統(tǒng)配置publish over ssh的Remote directory為當(dāng)前文件夾的相對(duì)路徑,開(kāi)頭不寫(xiě)/
    Exec command文件推送完之后的命令

    以上,流水線就做好了,點(diǎn)擊“build Now”就可以打包并且推送到服務(wù)器對(duì)應(yīng)位置上了

    構(gòu)建鏡像

    現(xiàn)在jar包已經(jīng)有了,并且到了它該在的位置,需要來(lái)構(gòu)建鏡像并啟動(dòng)
    安裝docker
    使用命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    或者:curl -sSL https://get.daocloud.io/docker | sh

    編寫(xiě)dockerfile
    docker需要使用dockerfile來(lái)構(gòu)建鏡像,先新建一個(gè)dockerfile文件

    #jdk基礎(chǔ)鏡像
    FROM anapsix/alpine-java:8_server-jre_unlimited
    
    #作者
    MAINTAINER CarinaYang
    
    #執(zhí)行命令,主要用來(lái)安裝相關(guān)的軟件
    #RUN 
    
    #添加文件
    ADD admin-service-1.0-SNAPSHOT.jar /usr/local
    #使用外面的配置文件
    ADD admin-service.yml /usr/local
    
    #掛載目錄到容器
    #VOLUME ["/data"]
    
    #開(kāi)放端口
    EXPOSE 9000
    
    #啟動(dòng)時(shí)執(zhí)行的命令
    CMD ["/bin/bash"]
    
    ENV JAVA_OPTS="\
    -Xms2048m -Xmx2048m -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M"
    
    #啟動(dòng)時(shí)執(zhí)行的命令
    ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar -Dspring.config.location=/usr/local/admin-service.yml /usr/local/admin-service-1.0-SNAPSHOT.jar
    

    構(gòu)建鏡像
    這里我是直接使用腳本來(lái)寫(xiě)的,創(chuàng)建腳本start.sh

    #!/bin/bash
    # 定義應(yīng)用組名
    group_name='springcloud'
    # 定義應(yīng)用名稱
    app_name='admin-service'
    # 定義應(yīng)用版本
    app_version='1.0-SNAPSHOT'
    echo '----停止消息服務(wù) ----'
    docker stop ${app_name}
    echo '----刪除實(shí)例----'
    docker rm ${app_name}
    echo '----刪除舊鏡像----'
    docker rmi ${group_name}/${app_name}:${app_version}
    echo '----打包鏡像----'
    # 打包編譯docker鏡像
    docker build -t ${group_name}/${app_name}:${app_version} .
    echo '----啟動(dòng)鏡像----'
    docker run -itd -p 9000:9000 --restart=always  --name ${app_name}  ${group_name}/${app_name}:${app_version}
    echo '----啟動(dòng)完成----'
    

    docker run 里面的 –restart=always是為了開(kāi)機(jī)自啟動(dòng)設(shè)置的,因?yàn)榉?wù)器每天晚上要關(guān)機(jī),不需要可以不寫(xiě)
    因?yàn)闆](méi)有部署鏡像倉(cāng)庫(kù)就直接啟動(dòng)鏡像了,如果有的話要推到鏡像倉(cāng)庫(kù)上去

    啟動(dòng)腳本

    ./start.sh

    當(dāng)然,可以直接加到j(luò)enkins流水線“推送jar包”步驟的execCommand中,這樣Jenkins推送jar包過(guò)來(lái)后就會(huì)自動(dòng)啟動(dòng)腳本了

    分享到:
    標(biāo)簽:后端 打包 服務(wù) 服務(wù)器 部署
    用戶無(wú)頭像

    網(wǎng)友整理

    注冊(cè)時(shí)間:

    網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

    • 51998

      網(wǎng)站

    • 12

      小程序

    • 1030137

      文章

    • 747

      會(huì)員

    趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
    最新入駐小程序

    數(shù)獨(dú)大挑戰(zhàn)2018-06-03

    數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

    答題星2018-06-03

    您可以通過(guò)答題星輕松地創(chuàng)建試卷

    全階人生考試2018-06-03

    各種考試題,題庫(kù),初中,高中,大學(xué)四六

    運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

    記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

    每日養(yǎng)生app2018-06-03

    每日養(yǎng)生,天天健康

    體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

    通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定