栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker布署jar包

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker布署jar包

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]

仅供参考,希望对您有所帮助,感谢阅读。


注:本文章,是从各大网站、各位道友以及老师等处学习,自己总结做的一些笔记,不对的地方望海涵,如有问题,请及时联系。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451221.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号