阿里云开源镜像站:
https://developer.aliyun.com/mirror/?utm_content=g_1000303593
springboot + docker + jenkins 自动化部署我的项目,jenkins、mysql、redis 都是 docker 运行的,并且没有应用虚拟机,就在阿里云服务器(centos7)运行
1、后期筹备工作不说了
2、在我的项目根目录下新建 Dockerfile
Dockerfile 文件内容为:
# 根底镜像
FROM openjdk:12
#作者
MAINTAINER demo <demo@qq.com>
VOLUME /tmp
#指定配置文件,以及 jar 包在服务器上的门路
ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","/lcy/work/tools/tools.jar"]
#裸露端口
EXPOSE 8092
3、在服务器找个目录新建一个.sh 文件
#!/bin/sh
echo '================ 开始构建镜像 =============='
#镜像名称
IMAGE_NAME='registry.cn-beijing.aliyuncs.com/???/tools'
#打包后在 jenkins 的地址
SOURCE_PATH='/lcy/jenkins/workspace/tools'
#Dockerfile 执行 jar 包的地址
BASE_PATH='/lcy/work/tools'
echo IMAGE_NAME=$IMAGE_NAME
echo '================ 复制 JAR 包 ==================='
echo $SOURCE_PATH/target/tools-0.0.1-SNAPSHOT.jar
cp $SOURCE_PATH/target/tools-0.0.1-SNAPSHOT.jar $BASE_PATH/tools.jar
chmod -R 777 $BASE_PATH/tools.jar
echo '================ 复制实现 ===================='
echo '================ 以后 docker 版本 =============='
docker -v
echo '================ 构建镜像开始 ================'
docker build -t $IMAGE_NAME -f $SOURCE_PATH/Dockerfile .
echo '================ 构建镜像完结 ================'
#输出要推送镜像的地址,依据镜像仓库提醒的地址复制
echo '================ 推送镜像开始 ================'
docker login --username=??? --password=??? registry-vpc.cn-beijing.aliyuncs.com
docker push $IMAGE_NAME
echo '================ 推送镜像完结 ================'
echo '================ 获取容器 id=================='
CID=$(docker ps | grep "$IMAGE_NAME" | awk '{print $1}')
echo 容器 id=$CID
echo '================ 获取镜像 id=================='
IID=$(docker images | grep "$IMAGE_NAME" | awk '{print $3}')
echo 镜像 id=$IID
if [-n "$CID"]; then
echo 存在 $IMAGE_NAME 容器, 进行容器并删除
docker stop tools
docker rm tools
else
echo 不存在 $IMAGE_NAME 容器, 开始启动
docker run -p 8092:8092 -d --name tools -v $BASE_PATH:$BASE_PATH $IMAGE_NAME
fi
4、配置 jenkins,执行新建的.sh 文件(记得给好权限)其它的配置就不说了,比方 github 的配置
5、运行后果