赞
踩
1.如果使用的是阿里云的服务器的话,Jenkins容器运行起来可能访问不到,需要登录阿里云的控制台进行安全设置
2.如果使用的是搬瓦工的服务器的话,是直接能够访问的。
这两种服务器本人亲自验证过。
我买的是阿里云的服务器,新用户1核2G内存40G硬盘空间,一年七十多块,还是蛮划算的。我是借了别人账号注册的。
ssh -p 22 root@120.24.22.xx
参数说明:22为ssh服务端口,不过这个端口可以修改。
apache-tomcat-8.5.51/bin/catalina.sh start
(https://blog.csdn.net/weixin_43317510/article/details/88932818)。
注意:如果使用的是阿里云的服务器的话,刚运行起来的jenkins容器通过ip和端口是访问不到的,需要设置一下
echo $JAVA_HOME
4.1 新建一个任务
4.2 配置github账号和项目仓库地址
项目仓库地址
github的账号和密码
4.3 项目打包
4.4 开始构建项目
以上的步骤已经实现了项目的集成和打包功能,但未实现自动化部署。下面将进行自动化部署演示
mkdir /usr/snowflake
上图中的jar包在Jenkins对项目打包完成以后,通过shell脚本就会迁移到上图目录中。
FROM java:8
# 指定当前操作目录
WORKDIR /usr/snowflake
#指定对外端口号
EXPOSE 8081
#启动java程序
#--spring.profiles.active=dev 多环境下指定环境 。 -c为清除以前启动的数据
ENTRYPOINT ["java","-jar","snowflake-core.jar","-c"]
#操作项目路径(Dockerfile存放的路径) BASE_PATH=/usr/snowflake # 源jar路径即jenkins构建后存放的路径 SOURCE_PATH=/root/.jenkins/workspace #docker 镜像/容器名字或者jar名字 这里都命名为这个 SERVER_NAME=snowflake #容器id CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}') #镜像id IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}') echo ">>>最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/snowflake-core-1.0.2.jar 迁移至 $BASE_PATH 目录下<<<" #/root/.jenkins/workspace/snowflake/snowflake-core/target/snowflake-core-1.0.2.jar //jenkins构建完成后jar包的位置,这个位置在jenkins构建的控制台可以看到 #把项目从jenkins构建后的目录移动到我们的项目目录(存放Dockerfile的目录)下同时重命名 mv $SOURCE_PATH/$SERVER_NAME/snowflake-core/target/snowflake-core-1.0.2.jar $BASE_PATH/snowflake-core.jar # 给文件赋权 chmod 777 /usr/snowflake/snowflake-core.jar echo ">>迁移完成<<<" # 构建docker镜像 if [ -n "$IID" ]; then echo ">>>存在$SERVER_NAME镜像,IID=$IID<<<" echo ">>>停止容器$SERVER_NAME<<<" # 停止容器 docker stop $SERVER_NAME echo ">>>删除容器$SERVER_NAME<<<" # 删除容器 docker rm $SERVER_NAME echo ">>>删除原始镜像<<<" # 删除旧的镜像 docker rmi $IID echo ">>>开始构建新的镜像<<<" cd $BASE_PATH docker build -t $SERVER_NAME . else echo ">>>不存在$SERVER_NAME镜像,开始构建镜像<<<" cd $BASE_PATH docker build -t $SERVER_NAME . fi # 运行docker容器 # --name docker-test 容器的名字为docker-test # -d 容器后台运行 # -p 3636:3636 指定容器映射的端口和主机对应的端口都为3636 # -v /usr/ms_backend/:/usr/ms_backend/ 将主机的/usr/ms_backend/目录挂载到容器的/usr/ms_backend/ 目录中(不可少每次本地更新jar包重启容器即可,不用重新构建镜像 docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 8081:8081 $SERVER_NAME
5.4 Jenkins后台配置编写好的shell脚本
5.5 构建项目
构建镜像、运行容器
查询镜像生成情况
查询容器运行情况
测试项目是否能够正常访问
本地代码修改后,推送到代码仓库,再次构建部署
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。