1、导入jar包到服务器指定目录下
2、在jar包存放目录下创建Dockerfile文件
创建命令:vim Dockerfile
文件写入以下内容:
FROM openjdk:8u212-jre
VOLUME /tmp
ADD [项目名].jar /[项目名].jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/[项目名].jar"]
3、在jar包存放目录下创建[项目名].sh文件
创建命令:vim [项目名].sh
文件写入以下内容:
#!/bin/bash
set -e
APP_NAME="[项目名]"
HOSTNAME="$APP_NAME"
EXPOSE_PORTS="[项目端口号]:[项目端口号]"
IMAGE_NAME="[项目名]:1.0.0"
function start() {
DOCKER_OPTS="run -d"
DOCKER_OPTS="$DOCKER_OPTS --name $APP_NAME -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro "
DOCKER_OPTS="$DOCKER_OPTS --hostname $HOSTNAME"
DOCKER_OPTS="$DOCKER_OPTS -v /home:/home"
EXP_PORTS=(${EXPOSE_PORTS// / })
for EXP_PORT in ${EXP_PORTS[@]}
do
DOCKER_OPTS="$DOCKER_OPTS -p $EXP_PORT"
done
DOCKER_OPTS="$DOCKER_OPTS $IMAGE_NAME"
docker $DOCKER_OPTS
}
function stop() {
APP_ID=$(docker ps | grep " $APP_NAME$" | awk '{print $1}')
if [ "x$APP_ID" != "x" ]; then
docker stop $APP_ID
fi
}
function restart() {
stop
APP_ID=$(docker ps -a | grep " $APP_NAME$" | awk '{print $1}')
if [ "x$APP_ID" != "x" ]; then
docker start $APP_ID
fi
}
function rm() {
APP_ID=$(docker ps -a | grep " $APP_NAME$" | awk '{print $1}')
if [ "x$APP_ID" != "x" ]; then
docker rm $APP_ID
fi
}
function logs() {
APP_ID=$(docker ps | grep " $APP_NAME$" | awk '{print $1}')
if [ "x$APP_ID" != "x" ]; then
docker logs -f $APP_ID
fi
}
function terminal() {
APP_ID=$(docker ps | grep " $APP_NAME$" | awk '{print $1}')
if [ "x$APP_ID" != "x" ]; then
docker exec -it $APP_ID /bin/bash
fi
}
function ps() {
docker ps -a | grep " NAMES$"
docker ps -a | grep "$APP_NAME$"
}
function reload() {
APP_ID=$(docker ps | grep " $APP_NAME$" | awk '{print $1}')
if [ "x$APP_ID" != "x" ]; then
docker exec -i $APP_ID nginx -s reload
fi
}
case "$1" in
start )
start
;;
stop )
stop
;;
restart )
restart
;;
rm )
rm
;;
logs )
logs
;;
terminal )
terminal
;;
ps )
ps
;;
reload )
reload
;;
* )
echo "USAGE: [start | stop | restart | rm | logs | terminal | ps | reload]"
;;
esac
4、在jar包存放目录下创建build.sh文件
创建命令:vim build.sh
文件写入以下内容:
#!/bin/bash
set -e
WORK_DIR=$(cd $(dirname $0); pwd)
IMAGE_NAME="[项目名]"
TAG_NAME="1.0.0"
docker rmi "$IMAGE_NAME:$TAG_NAME" | echo
docker build -t "$IMAGE_NAME:$TAG_NAME" "$WORK_DIR"
5、在jar包存放目录下创建run.sh文件
创建命令:vim run.sh
文件写入以下内容:
#!/bin/bash
set -e
docker stop [项目名]
docker rm [项目名]
./build.sh
./[项目名].sh start
docker logs -f --tail=10000 [项目名]
6、当前创建好的文的***.sh文件不能直接执行,需要命令执行一遍
所有.sh文件都使用“chmod u+x ***.sh”该命令执行一次
chmod u+x [项目名].sh
chmod u+x run.sh
chmod u+x build.sh
7、项目布署首次启动,需要先执选 “/build.sh”,执行“./[项目名].sh start”就可以启动成功了。首次启动完后,以后在启动项目,只需要直接使用“./run.sh”方式重启即可。
8、实时查看项目日志
docker logs -f --tail=10000 [容器名或容器ID]
仅供参考,希望对您有所帮助,感谢阅读。



