docker-compose集成Jenkins部署,打包,發(fā)布方式
前言
需要提前準(zhǔn)備的條件
- 1.git
- 2.Maven環(huán)境
- 3.Docker環(huán)境
- 4.JDK環(huán)境(Centos7.4自帶JDK環(huán)境去除,重裝的JDK)
- 5.Nodejs #前端發(fā)布使用
一、 jenkins部署
下載鏡像
#查詢鏡像 docker search jenkins
#下載鏡像 docker pull jenkins/jenkins
編寫docker-compose.yml
version : '3' services: jenkins: user: root restart: always image: jenkins/jenkins container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - /srv/jenkins/jenkins_home/:/var/jenkins_home/ - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /etc/docker/daemon.json:/etc/docker/daemon.json - /usr/local/java/jdk1.8.0_161:/usr/local/java/jdk1.8.0_161 - /usr/local/maven/apache-maven-3.9.1:/usr/local/maven/apache-maven-3.9.1 - /usr/local/node13:/usr/local/node13 - /root/.ssh:/root/.ssh
查詢linux服務(wù)器中jdk,maven,nodejs的路徑地址,掛載到j(luò)enkins容器的指定路徑,如下圖:
寫法:-服務(wù)器路徑:容器路徑
圖片內(nèi)容說明將服務(wù)器中的jdk,maven,nodejs掛載到j(luò)enkins容器中
- /root/.ssh:/root/.ssh 為ssh生成的密鑰地址?。?!
圖中可以合并寫成
volumes: - /srv/jenkins/jenkins_home/:/var/jenkins_home/ - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /etc/docker/daemon.json:/etc/docker/daemon.json - /usr:/usr #將服務(wù)器usr目錄掛載到j(luò)enkins容器的usr目錄中 - /root/.ssh:/root/.ssh
啟動(dòng)容器
Jenkins需要下載大量?jī)?nèi)容,但是由于默認(rèn)下載地址下載速度較慢,如有需要可以設(shè)置下載地址為國(guó)內(nèi)鏡像站
cd /home/jenkins_home/ cat hudson.model.UpdateCenter.xml
# 修改數(shù)據(jù)卷中的hudson.model.UpdateCenter.xml文件 <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites> # 將下載地址替換為http://mirror.esuni.jp/jenkins/updates/update-center.json <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url> </site> </sites> # 清華大學(xué)的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
啟動(dòng)容器
#在docker-compose.yml所在目錄啟動(dòng) docker-compose up -d jenkins
訪問Jenkins
在瀏覽器中輸入:http://serverIp:port/訪問jenkins,serverIp為docker宿主機(jī)的ip,port即為宿主機(jī)映射的端口。
即:http://192.168.0.1:8080/
#日志查看 docker logs jenkins
#根據(jù)提示密碼在/var/jenkins_home/secrets/initialAdminPassword這個(gè)文件中,注意這個(gè)路徑是jenkins容器中的,所以我們通過如下命令獲取一下 docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword #如果查不到,可以通過find命令,進(jìn)行全局搜索映射到服務(wù)器的initialAdminPassword的文件 find / -name "initialAdminPassword"
安裝插件
- 設(shè)置管理員信息
- 配置jenkins路徑(默認(rèn)即可)
- 進(jìn)入首頁(yè)
至此,Jenkins部署完成?。?!
二、 jenkins打包,發(fā)布配置
安裝插件
需要安裝的插件:
- 1.NodeJs
- 2.SSH Pipeline Steps
- 3.Maven Integration
全局工具配置
全局配置包含maven,jdk,nodejs,配置中的路徑為jenkins容器中的路徑:
如有報(bào)錯(cuò):
請(qǐng)查看docker-compose.yml中配置是否正確
或者 進(jìn)入jenkins容器
命令:java docker exec -it 容器id /bin/bash
查看配置是否掛載到容器中,確認(rèn)容器中的usr的maven,jdk,nodejs文件的路徑是否和jenkins中路徑一致
maven的settings.xml配置
JDK配置
Maven配置
NodeJS配置(發(fā)布前端使用)
如果沒有,確認(rèn)插件是否安裝
憑據(jù)配置
SSH類型
gitssh憑證配置(拉取代碼的時(shí)候使用)
SSH密鑰生成
執(zhí)行命令后,全敲回車 ssh-keygen -t rsa -C "git賬號(hào)"
查看生成的密鑰
- id.rsa:私鑰文件
- id.rsa.pub:公鑰文件????
私鑰配置到j(luò)enkins憑據(jù)中,公鑰配置到git中
賬號(hào)密碼類型
目標(biāo)服務(wù)器(需要發(fā)布代碼的服務(wù)器)的憑證配置(上傳jar包、前端文件時(shí)使用)
發(fā)布服務(wù)-后端(僅供參考)
以發(fā)布 demo 為例:
在目標(biāo)服務(wù)器上創(chuàng)建docker-compose.yml文件,dockerfile文件夾
在dockerfile中新建 demo 的文件夾
在 demo 新建Dockerfile
# 基礎(chǔ)鏡像 FROM openjdk:8-jre # author MAINTAINER zz # 掛載目錄 VOLUME /home/front # 創(chuàng)建目錄 RUN mkdir -p /home/front # 指定路徑 WORKDIR /home/front # 復(fù)制jar文件到路徑 COPY ./demo.jar /home/front # 啟動(dòng)認(rèn)證服務(wù) ENTRYPOINT ["java","-jar","demo.jar"]
在jenkins中新建任務(wù)-輸入任務(wù)名稱demo,選擇流水線
流水線腳本配置
運(yùn)行項(xiàng)目
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker構(gòu)建nginx?alpine鏡像實(shí)現(xiàn)步驟
這篇文章主要介紹了docker構(gòu)建nginx?alpine鏡像實(shí)現(xiàn)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08docker配置openGauss數(shù)據(jù)庫(kù)的方法詳解
這篇文章主要介紹了docker配置openGauss數(shù)據(jù)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03在Docker Compose中獲取最新鏡像的多種方法總結(jié)
Docker 鏡像是 Docker 容器的基礎(chǔ),鏡像包含了應(yīng)用程序所需的所有文件和依賴,Docker-Compose 默認(rèn)不會(huì)自動(dòng)拉取最新的鏡像版本,這可能會(huì)導(dǎo)致使用過時(shí)的鏡像,從而錯(cuò)過重要的更新,為了確保 Docker-Compose 始終使用最新的鏡像,我們可以采用多種方法,以下將詳細(xì)介紹這些方法2024-08-08idea使用docker插件實(shí)現(xiàn)一鍵自動(dòng)化部署
本文主要介紹了idea使用docker插件實(shí)現(xiàn)一鍵自動(dòng)化部署,文中通過圖文介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09安裝docker-ce報(bào)錯(cuò)yum倉(cāng)庫(kù)錯(cuò)誤問題及解決
安裝Docker-CE時(shí),可能會(huì)因依賴軟件版本不足導(dǎo)致報(bào)錯(cuò),解決方法包括使用yum update更新軟件包,若倉(cāng)庫(kù)無該包則需更新repo源,也可通過yum install -y docker-ce --skip-broken跳過依賴更新直接安裝,若遇yum命令執(zhí)行報(bào)錯(cuò)2024-11-11Docker數(shù)據(jù)存儲(chǔ)之Bind mounts詳解
今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲(chǔ)之Bind mounts詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02Docker容器化spring boot應(yīng)用詳解
本篇文章主要介紹了Docker容器化spring boot應(yīng)用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄功能
這篇文章主要介紹了Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03