jenkins發佈docker到mesos

一、前提是裝好git、SSH、maven插件git

二、jenkins新建一個項目,配好git拉取代碼、maven編譯構建(gradle構建也行,這不重要)docker

三、SSH Server,填寫須要傳輸的jar文件,及腳本(mypush2.sh、Dockerfile)json

     Exec command:  執行遠程腳本命令api

      cd data/${project} //進入工做目錄bash

      chmod 777 mypush2.sh //修改腳本可執行權限
      sudo ./mypush2.sh //提高權限執行部署腳本,sudo加不加主要看用戶有無權限app

四、mypush2.sh 構建docker、上傳docker到私服、重啓marathoncurl

#!/bin/bash
set -e
server_url=dockerhub.myco.com        //(私服地址,使用的開源的HARBOR)
image_name=projec/myimage:latest   //(待構建的鏡像名)maven

DOCKER_FILE=$(pwd)
echo ${DOCKER_FILE}
docker build  -t ${server_url}/${image_name}  ${DOCKER_FILE}  || exit 1
echo "build success"
docker login dockerhub.myco.com -u test -p **** && docker push ${server_url}/${image_name}  //配置登陸的用戶名、密碼
echo "push success"
curl -d "force:false" -H "Content-Type:application/json"  http://XXX:8080/v2/apps/myapp/restart    //調用marathon restart api
echo "deploy marathon success"gradle

 

 

首先,執行docker build ,從Dockerfile構建dockerui

其次,執行docker login、docker push ,將鏡像推送到私服

再次,成功上傳私服後,調用marathon API重啓app;

五、Dockerfile 構建docker腳本

FROM  dockerhub.myco.com/fund/base-image:latest
MAINTAINER shilin
ENV project_name myproj
COPY ${project_name}-biz/target/${project_name}-biz-exec.jar /project/lib/
WORKDIR /project
##EXPOSE 22882 8282
ENTRYPOINT ["/project/bin/start.sh"]

首先,拉取一個基礎鏡像,將打包好的jar複製到基礎鏡像的lib目錄

其次,設置WORKDIR默認工做目錄,設置ENTRYPOINT,docker啓動時自動啓動的腳本(通常就是配置vm參數啓動jar)!

相關文章
相關標籤/搜索