日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目

發布時間:2023/12/2 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文同名博客老炮說Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/實戰項目等文章資料

Sentinel+Nacos 是微服務環境搭建必不可少的兩個組件,這里給大家推薦一套微服務教程:

SpringCloud微服務電商項目教程 - 老炮說Java-程序員編程資料和編程經驗分享平臺?www.laopaojava.com

教程主要包含下面內容:

Jenkins

Jenkins基于Java環境,可以部署在windows/Mac OS/linux上,通過其網頁可視化界面可以輕松操作Jenkins。

接下我們會分成三部分來講解:

  • docker安裝Jenkins
  • Jenkins首次登錄配置
  • 構建一個項目完成自動部署

docker安裝Jenkins

我們在linux環境使用Docker安裝一個Jenkins,你需要事先安裝Docker和Docker-compose,如果不知道怎么安裝可以看我的安裝教程文章。

1.遠程連接linux服務器,創建docker在主機的jenkins數據映射目錄

cd /opt mkdir jenkins cd jenkins mkdir home

2.(可選)給數據映射目錄授權docker用戶訪問權限,不然docker啟動jenkins時會報權限的錯。如果指定了容器內以root用戶運行的話,可以不用執行授權命令。

sudo chown -R 1000 home

jenkins容器內部的用戶id是1000,而主機上home目默認是root用戶才能訪問,需要授權給jenkins容器用戶。-R 代表home目錄及其子目錄一起授權。

3.我們用docker-compose安裝,當然你也可以用docker run的方式,創建一個docker-compose.yml文件。

version: "3" services:jenkins:image: jenkins/jenkins:ltsports:- 8080:8080- 50000:50000restart: "always"container_name: jenkinsenvironment:JAVA_OPTS: -Duser.timezone=Asia/Shanghaivolumes:- /opt/jenkins/home:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/dockerprivileged: trueuser: root

官網中文文檔與英文文檔不一致,不要使用中文文檔中推薦的jenkinsci/blueocean鏡像,使用它構建node程序會出現問題,因為我的項目需要同時構建前端vue項目和后端springboot項目,所以我這里使用jenkins/jenkins:lts版本鏡像。

(可選)最后一行的user:root指的是指定容器內部使用root賬號,如果加了這行可以把第二步省略??梢酝ㄟ^docker exec -t jenkins bash命令進入到容器內部然后運行whoami命令查看當前用戶。

注意其中我們映射了一個容器內的/var/jenkins_home目錄,這是作為Jenkins的主目錄,里面會存放Jekins的各種配置和構建的項目工作空間,后面需要用到這個對應的主機映射路徑。映射的端口可以自行修改。

4.啟動Jenkins容器

userdocker-compose up -d

安裝就成功了,你可能看著很簡單,其實這一步是最多坑的地方,第二步中的映射目錄授權很多人沒做導致報錯排查了很久,docker-compose配置文件里有映射了幾個目錄如果沒有后面也會讓你頭疼的。

Jenkins首次登錄配置

1.首次登陸,解鎖jenkins,啟動完成后打開瀏覽器 ip:8080 。

解鎖Jenkins

獲取密碼,在服務器控制臺運行以下命令查看密碼,注意這里的目錄是主機的目錄/opt/jenkins/home,對應的是容器內的/var/jenkins_home目錄。

cat /opt/jenkins/home/secrets/initialAdminPassword

2.自定義插件

不了解自己需要的插件的話選擇安裝推薦的插件,如果你是學習目的的話可以選擇插件來安裝。

自定義插件

推薦安裝插件界面

推薦安裝插件

選擇插件安裝頁面

選擇插件安裝

安裝插件的過程比較久,慢慢等待。

3.創建一個管理員用戶

安裝完插件會出現創建管理員用戶的界面。填寫用戶名和密碼以及郵件地址即可。

創建一個管理員用戶

4.進入jenkins首頁

默認有一些地方是英文的,你可以服務器重啟下jenkins容器就可以變成中文了。

Jenkins首頁

點擊左側的Manage Jenkins菜單,中文叫系統管理。下圖紅框中的三個分別是系統配置、全局工具管理、插件管理。Security部分可以管理憑據(新建項目時會講到)。以后想裝插件、配置用戶、配置Jenkins的話都在這里操作。

系統管理

構建一個項目完成自動部署

1.新建項目

點擊左側新建Item菜單新建一個項目。

新建項目

輸入任務(項目)名稱,任務類型選擇Freestrle project,中文的話叫自由風格的項目。

創建成功后可以看到任務里有很多的配置,一般我們配置源碼管理(你的項目git路徑、分支和賬號)、構建(寫構建shell腳本)就可以了。

項目配置頁面

2.源碼管理配置

我的項目在gitlab上,使用的是git,所以我們選擇Git,輸入項目的git地址。

配置git地址

如果你的git倉庫是私有的,會提示無法連接倉庫,如下圖。

私有git倉庫

這時我們就需要添加一個憑據,可以直接點git地址輸入框下方的添加按鈕,選擇Jenkins默認域添加一個憑據。這一步也可以在系統管理里事先設置好。

添加憑據

在添加憑據的地方輸入你的git上的賬戶名和密碼點擊添加即可。

添加憑據

指定分支,默認是 */master,這里我改成 */develop 。

指定分支

源碼管理部分就可以了,接下去是設置構建步驟,我們跳到構建步驟。

3.構建配置

我們滾動到構建步驟部分,點擊增加構建步驟,在下拉框中選擇執行shell腳本。

執行shell腳本

shell腳本根據你的項目情況而定,我這里給出一個我的項目的腳本參考,因為我是同時構建前后端項目,所以比較復雜一點。注意這個shell腳本運行的當前路徑是主機上的 /opt/jenkins/home/workspace/項目名 目錄, 注意/opt/jenkins/home 目錄是我對應jenkins容器里的/var/jenkins_home 目錄??梢酝ㄟ^在腳本里寫個$(pwd)然后構建日志中查看具體是什么。需要一定的shell知識,當然如果你不用shell腳本也是可以使用其他方式構建可以自行查閱。

dir=$(pwd) echo "jenkins容器項目所在路徑:" echo $dir echo "主機路徑:" real_dir="/opt/jenkins/home/"${dir#'/var/jenkins_home/'} echo $real_direcho "開始構建"echo "創建前端代碼打包腳本install.sh" cat>web/install.sh<<EOF sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories apk update apk add yarn yarn config set registry https://registry.npm.taobao.org/ yarn && yarn build:dev EOFecho "打包前端代碼生成dist目錄" docker run --rm --net=host -v ${real_dir}/web:/web -v /root/.cache/yarn/cmp:/usr/local/share/.cache/yarn -w /web node:10-alpine3.11 sh install.shecho "拷貝前端dist目錄到后端項目的public目錄,用于與后端公用端口,解決跨域問題" mkdir -p ./src/main/resources/public cp -r ./web/dist/* ./src/main/resources/publicecho "后端構建" mkdir -p /root/.m2echo "后端mvn打包jar文件" docker run --rm -v /root/.m2:/root/.m2 -v ${real_dir}:/cmp -w /cmp maven mvn clean install -DskipTestsecho "復制jar文件到指定docker目錄" mkdir -p docker && cp target/cmp-0.0.1-SNAPSHOT.jar ./docker && cd dockerecho "在指定docker目錄創建Dockerfile文件用于生成docker容器" cat>Dockerfile<<EOF FROM openjdk:8u242-jdk COPY cmp-0.0.1-SNAPSHOT.jar / RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENTRYPOINT ["java", "-jar", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5008", "/cmp-0.0.1-SNAPSHOT.jar"] EOFecho "清理已有容器及鏡像資源" container="Jenkins-project01" image=${container}if docker ps | grep ${container} ;thendocker stop ${container} fiif docker ps -a | grep ${container};thendocker rm ${container} fiif docker images | grep ${image};thendocker rmi ${image} fiecho "鏡像制作" docker build -t ${image} . echo "容器運行" docker run -d --restart=always --name ${container} -v /var/logs:/var/logs -p 8888:8888 ${image} --spring.profiles.active=dev -Duser.timezone=GMT+8

4.構建項目查看控制臺信息

在任務頁面點擊立即構建,然后可以在下方的構建歷史中點擊右側時間位置的小箭頭打開控制臺輸出信息。

查看控制臺輸出

控制臺內容

好了,以上就是Jenkins的全部內容了。

作者:程序員柳大俠http://toutiao.com/i6891617717334475271

總結

以上是生活随笔為你收集整理的docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。