linux中 docker 部署jar项目
情况介绍
环境介绍
华为云学生机 200多一年的 cpu是arm的(arm的不想搞)
jdk版本 1.8的
portainer 适合自己就行(本篇不教这个,很简单的)
起因
我个人由于闲的无聊,于是买了一个华为的学生机(24以下都可以的),可能就是玩玩,之前装了一堆东西,基本也不怎么用,最近突然记起,就顺手写了个博客,再顺手写了个后台,想着反正不怎么用,博客直接扔上去得了。
原本想直接弄个tomcat跑的,docker也不太会,可是折腾烦了,直接扔docker吧!
正题
博客和后台( 还是半成品 )直接打成jar,利用一波骚操作,上传到了linux,然后新建了一个文件叫做 Dockerfile 名字别搞错了。
Dockerfile
# jdk版本
FROM openjdk:8-jdk-alpine
# 我也忘了,反正很重要
VOLUME /opt/projectJar/blogAdmin/
# 我的jar 改admin.jar了 admin.jar jar包名很重要,不能重名,要不然完成不了下面的骚操作
ADD macro-admin-1.0-SNAPSHOT.jar admin.jar
# 啥意思百度吧,博主也忘了,反正也重要
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/admin.jar"]
构建镜像
# macro/macro-admin 标签名随便定义,别重复就行,后面的' . ' 也需要的
docker build -t macro/macro-admin:latest .
运行镜像
# 注意标签名 前面的端口是对外,后面的端口是你服务器内部访问的
docker run -p 8080:8080 -t macro/macro-admin
注意你的安全组需要开放你设置的端口
然后就运行起来了,然后我转念一想,我更新咋搞,毕竟是个半成品,接着玩。
deploy.sh 自己新建一个这样的文件 ----个人原创(Machinist)
每次跑这前需要停止运行的,是stop,不是remove
#!/bin/bash
# 获取当前文件位置
path=`pwd`"/admin.jar"
echo '请先关闭需要修改的docker'
echo '查询docker中名字是admin.jar的位置'
dockerPath=`find / -name admin.jar`
echo "docker中文件路径为:$dockerPath"
echo '修改jar文件为admin.jar'
mv *.jar admin.jar
echo "当前app.jar位置:: $path"
echo '将当前文件夹下的jar复制到docker容器中'
cp $path $dockerPath
echo '修改完成,请重启docker'
赋予权限 chmod -R 777 deploy.sh
然后把你的jar 和sh文件同级
然后./deploy.sh
再去portainer上运行这个容器就可以了,本人感觉比tomcat带劲,但是没自动化部署的爽。你要是牛X点,安装这个思路感觉可以搞一波的。都是玩笑话,别当真!
大部分百度都搜得到,只有这个deploy.sh 我写的,所以还是多百度吧!