1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #!/bin/sh # 当前文件夹 REPOSITORY_NAME="./bus-order-consumer/external" # git代码地址(配合ssh使用最佳) REPOSITORY_URL="git代码地址" # 项目名称 CONTAINER_NAME="gb-bus-order-consumer" # 项目版本 CODE_VERSION="0.0.1-SNAPSHOT" # 环境前缀字符 PROFILE_VERSION="external-pre" # 分支或者环境 GIT_VERSION="pre" # 版本号 versionid="0.0.1"
echo "================清除仓库目录================" # 清楚原有的文件夹 rm -rf ${REPOSITORY_NAME} # 新建文件夹 mkdir -p ${REPOSITORY_NAME}
cd ${REPOSITORY_NAME}
echo "================克隆远程仓库================" git clone -b ${GIT_VERSION} ${REPOSITORY_URL} # 进入需要编译的目录 cd "./java/gb-business/gb-bus-order/${CONTAINER_NAME}"
echo "================代码打包中================" # 本地maven 构建项目 /usr/local/maven/bin/mvn clean install -P ${PROFILE_VERSION}
echo "================移动jar包================" # 将jar包 移动到docker file文件夹下。 cd "./target" cp ${CONTAINER_NAME}-${CODE_VERSION}.jar "../docker/app.jar"
cd "../docker"
echo '================开始推送镜像================' # 推送docker image到指定的镜像仓库
docker login --username=************ --password=********** url
docker build --build-arg JAR_FILE=./app.jar -t 仓库地址/${CONTAINER_NAME}:${PROFILE_VERSION}-${CODE_VERSION}-${versionid} .
docker push 仓库地址/${CONTAINER_NAME}:${PROFILE_VERSION}-${CODE_VERSION}-${versionid}
echo '================结束推送镜像================' # 清除本地的docker image docker rmi $(docker images | grep "${CONTAINER_NAME}" | awk '{print $3}')
echo '=================删除镜像================='
|