docker+jenkins实现自动化部署Springboot项目

参考链接

docker部署springboot项目

参考链接

#!/bin/bash
#定义目录
filepath=/usr/code
cd $filepath
#使用rz上传文件
rz -y
#删除原来的容器(先停止再删除)
docker stop hellodocker
docker rm -f hellodocker
#删除镜像
IMAGEID=docker images |grep hellodocker |awk ‘{print $3}’
docker rmi -f $INAGEID
#重新build镜像
docker build -t hellodocker:1.0.0 .
#运行容器
docker run --name hellodocker -d -p 8088:8088 --restart=always hellodocker:1.0.0
sleep 3s
docker ps
echo 恭喜你,部署成功.可使用docker logs -f hellodocker查看实时运行日志

这种也不太好,不太方便。

我建议使用我的这种方式:
在这里插入图片描述
将docker-entrypoint.sh文件和dockerfile文件写在项目里面,一起上传到git交给jenkins打包,打总包,然后解压后,执行dockerfile文件时也执行了docker-entrypoint.sh文件启动项目。

dockerfile:

FROM harbor.hst.com:8443/cespublic/openjdk:8-jdk-alpine-font-mysqlclient
MAINTAINER wangkun@hst.com

COPY target/cesManager.jar /cesManager.jar
COPY docker-entrypoint.sh /docker-entrypoint.sh
WORKDIR /usr/local/hst/
RUN chmod g+x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

docker-entrypoint.sh:

#!/bin/sh

#---------base variable --------------------------

cur_dir=$(pwd)

echo "工作目录:"$cur_dir

# log directory -----------------------------------
if [ ! -d logs  ];then
  mkdir logs
fi

if [ -f "logs/ces_console.log" ];then
  rm -f logs/ces_console.log
fi


# -- java path ------------------------------------
javawebserver="java"

if [ ! -x $JAVA_HOME/bin/javawebserver ]
then
  cp $JAVA_HOME/bin/java $JAVA_HOME/bin/javawebserver
fi
javawebserver=$JAVA_HOME/bin/javawebserver


if [ $javawebserver = "java" ]
then
  echo "WARN !!!: The command javawebserver was not found, use java"
fi

#----db type-----

dbType="db"
case ${DB_TYPE} in
 dm)
        dbType="db-dm"
        ;;
 kingbase)
       dbType="db-kingbase"
        ;;
 mariadb.yml)
        dbType="db-mariadb"
        ;;
 *)
        export CES_DATABASE_BASE=/usr/bin/
        dbType="db"
        ;;
esac

# ---------- set env -------------------------------
#Wait for other services to start

#Directory of database installation
#export CES_DATABASE_BASE=/usr/local/hst/mysql/bin

#Directory where data backup files are stored
#export CES_DATA_BACKUP_BASE=/usr/local/data

exec $javawebserver -Xms2048m -Xmx2048m -XX:MaxDirectMemorySize=512m -XX:+UseG1GC  \
-Djava.security.egd=file:/dev/./urandom \
-Djava.net.preferIPv4Stack=true \
-Dserver.port=8080 \
-Dserver.http.port=${NGINX_HTTP_PORT} \
-Dserver.ssl.enabled=false \
-Dserver.webControl.enable=false \
-Dserver.webApp.enable=false \
-Dhst.ces.version=${CES_VERSION} \
-Dhst.ces.algorithm="MD5|DES" \
-Dhst.ces.ftpDirectory=${CES_FTP_DIR:-/usr/FMFiles/ftp} \
-Dhst.ces.clusterMode=${CES_CLUSTER:-false} \
-Dserver.undertow.accesslog.enabled=false \
-Dserver.undertow.accesslog.enabled.dir=./ \
-Dignite.clusterAddresses=${IGNITE_CLUSTER_ADDRESSES:-127.0.0.1} \
-Dces.fsp.ice.address=${FSP_ICE_IP} \
-Dces.fsp.ice.port=${FSP_ICE_PORT:-20010} \
-Dhst.live.media=${LIVE_MEDIA} \
-Dhst.live.liveurl=${LIVE_URL} \
-Dhst.live.appKey=${LIVE_APP_KEY} \
-Dhst.live.appSecret=${LIVE_APP_SECRET} \
-Dhst.ces.pass.fsp.devId=${FSP_DEV_ID:-9f08cb39074bb831586ce998fd983206} \
-Dhst.ces.pass.fsp.devSecret=${FSP_DEV_SECRET:-c30878b783e17dcb} \
-Dspring.profiles.include=$dbType,i18n,cache,extender,base,serv,auth,message,meeting,fmapi,fmapi-rest,meeting-rs \
-jar /cesManager.jar


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值