jar 工程 docker 方式部署

jar 工程 docker 方式部署

.编写超级简单版本的 dockerfile 文件:

# jdk 是一个已有的包含 jdk 的镜像 mcr.microsoft.com/java/jdk:8u232-zulu-ubuntu
FROM jdk
# 作者签名
MAINTAINER JY
# 简化 jar 的名字路径 (#:表示注释掉)
COPY jar/eurekaserver-0.0.1-SNAPSHOT.jar /app.jar

ADD  eurekaserver-0.0.1-SNAPSHOT.jar  /app.jar             #复制本地jar到镜像中

# 执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
CMD java -jar /app.jar

#CMD [“bash”,“-c”,“java -jar app.jar”]

ENTRYPOINT  [“java”,“-jar”,“app.jar”]     #执行的命令

# 设置对外端口
EXPOSE 8761

通过 dockerfile 文件生成本工程的镜像:
docker build -t gentle .

======================================

参考自动脚本构建

cd gentle_code
# 备份原代码
tar -zcvf gentle.tar ./gentle
# 删除原代码文件夹
rm -rf gentle
# 拉取代码
echo -e “\033[32m\n从git拉取代码\n\033[0m”
git clone https://gitee.com/FJ_WoMenDeShiJie/gentle.git
echo -e “\033[32m\n代码拉取完成\n\033[0m”
# 工程打包
cd gentle
rm -rf ./target/gentle-1.0-SNAPSHOT.jar
echo -e “\033[32m\n开始打jar包\n\033[0m”
mvn install -Dmaven.test.skip=true
rm -rf ../../jar/gentle-1.0-SNAPSHOT.jar
cp ./target/gentle-1.0-SNAPSHOT.jar ../../jar
echo -e “\033[32m\njar包完成\n\033[0m”
# 删除原镜像
docker rmi gentle &> /dev/null
echo -e “\033[32m\n删除原镜像\n\033[0m”
echo -e “\033[32m\n构建新镜像\n\033[0m”
cd ../../
docker build -t gentle .
echo -e “\033[32m\n新镜像构建成功\n\033[0m”
# 删除原容器
docker rm -f gentle
# 启动容器
docker run -d -p 8089:8089 –name gentle gentle
echo -e “\033[32m\n后端工程部署完成\n\033[0m”
======================================

或者使用手动更新jar包时,需要在把xxx.jar包复制进容器时,统一重命名为app.jar
docker cp 宿主机jar包 容器名(或容器ID):/app.jar

说明:此方式的优势在于:每次如果要更新jar包,只需要先将容器stop,然后直接替换容器里面的jar包,最后再将该容
器start即可。无需每次都创建新的镜像,创建新的容器。

You must be logged in to post a comment