linux中 docker 部署jar项目

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 我写的,所以还是多百度吧!

原文地址:https://www.cnblogs.com/macro53/p/13280302.html