jenkins發布docker專案 harbor

2021-10-21 14:16:52 字數 1676 閱讀 9103

​    jenkins 部署k8s 專案還是比較流暢的,本身建立多流水線專案,在專案中新增jenkinsfile就好了,映象需要額外的引數,還可以新增dokcerfile檔案。由於我現在的問題是不能夠修改原有的專案,還想利用專案中的dockerfile打包後發布到私服倉庫(harbor)中。

這種構建有個劣勢就是只能單分支的。

這裡有個小坑就是docker 預設使用https鏈結,而區域網內ip都是http的。

vi /etc/docker/daemon.json
registry-mirrors 也沒啥用,後來構建的時候死活拉不下來包(無論怎麼改都會從 docker.io 拉包)。

只能手動拉下來再重新命名了。

之前有個包拉不下來,frolvlad/alpine-oraclejdk8。只能先從別的映象位址拉。

docker pull docker.mirrors.ustc.edu.cn/frolvlad/alpine-oraclejdk8
拉完了再重新命名,要不每次還會從 docker.io 拉取

docker tag tnxkcso1.mirror.aliyuncs.com/frolvlad/alpine-oraclejdk docker.io/frolvlad/alpine-oraclejdk
雖然image id 一樣,但是包是ok的

post steps

execute shell

#專案所在jenkins目錄

cd /var/lib/jenkins/workspace/***/

#複製到指定目錄

#進入目錄執行docker命令

#docker生成映象並推送到倉庫,build-arg非必填,需要看dockerfile是否有環境變數引用

docker build -t 192.168.1.1:80/***/***:v1 --build-arg "jar_name=./***-1.0-snapshot.jar" -f ./dockerfile .

docker login -u=admin -p=admin 192.168.1.1:80

docker push 192.168.1.1:80/***/***:v1

push到harbor這塊還有個小坑,需要先在 harbor 建立專案。

比如專案名稱是 aaa,你的映象+tag 是 ***:v1。

那麼push的時候要寫上全路徑,不建專案是不行的!

docker快速安裝Jenkins

1.pull映象 要使用最新的lts docker pull jenkins jenkins lts 新建容器 docker run name jenkins p 8081 8080 p 50000 50000 d jenkins jenkins lts 備註 8080為docker埠,8081為對...

Jenkins使用docker構建

jenkins master要將構建任務分配給docker,就必須在jenkins agent上安裝docker。建議給這些agent打上docker的標籤。在jenkins agent上安裝docker注意 要將 jenkins agent 的使用者加入docker的使用者組中,這樣jenkins...

基於 Docker 安裝 Jenkins

docker compose.yml jenkins 是乙個簡單易用的持續整合軟體平台,我們依然採用 docker 的方式部署,docker compose.yml 配置檔案如下 version 3.1 services jenkins restart always image jenkinsci ...