服务一键容器化启动
Dockerfile文件
将上传到服务器的jar包打成镜像.
FROM openjdk:8u302-jdk
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai'> /etc/timezone
ADD ./wx-develop.jar /wx-develop.jar
EXPOSE 8088
ENTRYPOINT ["java","-jar","wx-develop.jar","-Xms256m","-Xmx256m","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap"
upload.sh脚本
先打包jar包,再将dockerfile文件准备好.rsync增量上传
#!/bin/bash
JAR_FILE_NAME='wx-develop-0.0.1-SNAPSHOT.jar'
UPLOAD_CMD="
rsync -e 'ssh -p 32' -avp \
./dockerfile \
./deploy.sh \
../../../target/$JAR_FILE_NAME \
root@49.235.104.20:/app
"
mvn clean install -f ../../../pom.xml
if [ $? -ne 0 ];then
echo "maven build failed...."
exit 1
else
echo "now start upload files inclue $JAR_FILE_NAME"
fi
if [ ! -e ./dockerfile ] || [ ! -e "../../../target/$JAR_FILE_NAME" ];then
echo "dockerfile or jar $JAR_FILE_NAME not exists"
exit 1
fi
eval $UPLOAD_CMD
deploy.sh
#!/bin/bash
#define colors
RED='\e[1;31m' #红
GREEN='\e[1;32m' #绿
YELLOW='\e[1;33m' #黄
BLUE='\e[1;34m' #蓝
PINK='\e[1;35m' #粉红
GREEN='\e[0m' #清除颜色
JAR_FILE_NAME='wx-develop-0.0.1-SNAPSHOT.jar'
DEFAULT_TABEL="wx-develop:`data +%Y%m%d`"
CONTAINER_PORT='8088/tcp'
PORT='8082'
if [ ! -e ./dockerfile ] || [ ! -e "./$JAR_FILE_NAME" ];then
echo -e "$RED dockerfile or jar $JAR_FILE_NAME not exists $RES"
exit 1
fi
echo -e "$YELLOW now start to build $JAR_FILE_NAE$RES"
read -t 5 -p "now input container label which concat with ':',default is $DEFAULT_LABEL ->" label
if [[ -z $label ]]|| [[ $label != *:* ]];then
echo -e "\n$BULE use default label $DEFAULT_LABEL $RES\n"
label=$DEFAULT_LABEL
fi
echo -e "$GREEN now using the label: $label $RES"
#kill the server and remove container built before
CONTAINER_ID=$(docker ps |grep $CONTAINER_PORT)|awk '{print $1}')
IMAGE_ID=$(docker ps |grep $CONTAINER_PORT)|awk '{print $2}')
if [[ ! -z $CONTAINER_ID ]];then
echo -e "$RED now stop container $CONTAINER_ID $RES"
docker stop $CONTAINER_ID
docker rm $CONTAINER_ID
fi
if [[ ! -z $IMAGE_ID ]];the
echo -e "$RED now delete image $IMAGE_ID $RES"
docker rmi $IMAGE_ID
fi
eval "docker build -t $label ."
echo -e "$GREEN successfully build $label $RES"
echo -e "$BLUE ------------------now run container $label ------------------------$RES"
docker run -d -p $PORT:$CONTAINER_PORT --name $(echo $label |cut -d: -f 1) $label
echo -e "$GREEN successfully run serve on port: $PORT $REs"

浙公网安备 33010602011771号