Jenkins打Docker鏡像推送到私有倉庫

Jenkins打Docker鏡像推送到私有倉庫

因爲我的Jenkins是安裝在羣暉NAS中的docker,所以我這邊就以Docker安裝Jenkins爲例

echo '================Docker開始=============='

echo '================登陸阿里雲私有鏡像倉庫=============='
# 定義鏡像名稱
IMAGE_NAME="scm"
# 查看當前目錄
pwd
# 進入web目錄Dockerfil所在目錄下,scm-web是我項目目錄,Dockerfile文件在該目錄下
cd scm-web
# 查看當前目錄
pwd
echo "# 登陸阿里雲docker私有倉庫"
docker login --username=${username} --password=${password} registry.cn-hangzhou.aliyuncs.com
echo "# 打鏡像tag"
docker -t registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER} $WORKSPACE/scm-web
echo "# 推送到倉庫"
docker push registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 刪除本地鏡像"
docker rmi registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 退出私有倉庫"
docker logout 

echo '================Docker結束=============='

echo "部署鏡像 ===============>>>>>>>>>>>>>>>>>>>>>>> registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}"

如果上來就直接jenkins sh構建運行shell腳本會報: docker: command not found

如果普通docker,把宿主機的這兩個文件掛載到jenkins容器中,就可以執行docker命令了。

/var/run/docker.sock
/bin/docker

這個是我在網上看到的教程,我還沒試過。。。

有空會試試的,看看行不行。


可以是我羣暉NAS的docker,我是先在NAS的shell命令下找到docker文件,之後將該文件複製到homes目錄下。

# 羣暉NAS的docker文件在/usr/local/bin/下
cp /usr/local/bin/docker /volume1/homes/admin/jenkins_docker/bin

之後就在羣暉NAS的web頁面去操作docker容器,掛載目錄。

再然後jenkins sh構建運行shell腳本會報:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

這個是因爲docker找不到守護進程,那麼我們開啓宿主機的2375端口。通過這種方式:docker -H tcp://172.17.0.1:2375 version

參考文檔:https://blog.csdn.net/liumiaocn/article/details/93749435

然後我們在腳本中添加:

echo '================Docker開始=============='

echo '================登陸阿里雲私有鏡像倉庫=============='
# 定義鏡像名稱
IMAGE_NAME="scm"
# 查看當前目錄
pwd
# 進入web目錄Dockerfil所在目錄下,scm-web是我項目目錄,Dockerfile文件在該目錄下
cd scm-web
# 查看當前目錄
pwd
echo "# 登陸阿里雲docker私有倉庫"
docker login --username=${username} --password=${password} registry.cn-hangzhou.aliyuncs.com
echo "# 打鏡像tag"
docker -H tcp://172.17.0.1:2375 build -t registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER} $WORKSPACE/scm-web
echo "# 推送到倉庫"
docker -H tcp://172.17.0.1:2375 push registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 刪除本地鏡像"
docker -H tcp://172.17.0.1:2375 rmi registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 退出私有倉庫"
docker logout 

echo '================Docker結束=============='

echo "部署鏡像 ===============>>>>>>>>>>>>>>>>>>>>>>> registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}"

至此就在Jenkins中應用保存。

接下來直接構建,查看控制檯輸出:

我們在看下阿里雲容器服務的鏡像倉庫有沒有

BingGo!!!

打完收工~~~
趙小胖個人博客:https://zc.happyloves.cn:4443/wordpress/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章