神甫 发表于 2018-1-9 10:38:44

jenkins发布docker到mesos

  1、前提是装好git、SSH、maven插件
  2、jenkins新建一个项目,配好git拉取代码、maven编译构建(gradle构建也行,这不重要)
  3、SSH Server,填写需要传输的jar文件,及脚本(mypush2.sh、Dockerfile)
  Exec command:执行远程脚本命令
  cd data/${project} //进入工作目录
  chmod 777 mypush2.sh //修改脚本可执行权限
  sudo ./mypush2.sh //提升权限执行部署脚本,sudo加不加主要看用户有无权限
  4、mypush2.sh 构建docker、上传docker到私服、重启marathon
  #!/bin/bash
  set -e
  server_url=dockerhub.myco.com      //(私服地址,使用的开源的HARBOR)
  image_name=projec/myimage:latest   //(待构建的镜像名)
  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"
  首先,执行docker build ,从Dockerfile构建docker
  其次,执行docker login、docker push ,将镜像推送到私服
  再次,成功上传私服后,调用marathon API重启app;
  5、Dockerfile 构建docker脚本
FROMdockerhub.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)!
页: [1]
查看完整版本: jenkins发布docker到mesos