前言:发现阿里云服务器快过期了,正好拿来部署下Java项目,用一个小项目测试
前置环境:阿里云服务器+jdk+Docker+虚拟机下的MySql
连接服务器的工具:mobaXterm
1.前置准备
1.1 首先查看浏览器访问端口号在服务器中是否被占用
sudo netstat -tulpn | grep <port> # <port>为你的浏览器端口
这步很重要,端口被占用,项目无法运行。
可以选择杀掉 kill 进程号
也可以选择在项目配置文件中换一个没有被占用的端口号
1.2在阿里云服务器中设置安全组
没有设置安全组的可以直接跳过,应该没有限制Ip,个人建议设置安全组,免得被攻击。
手动添加开放端口,例如我这里的浏览器访问是81,在目的端口范围就填入81,授权对象可以全看,也可以设置成指定的ip才能访问,这里我设置的是全开。
1.3 修改存储层IP
这里用CentOs下的数据库举例。
1.2.1 注意将${db.host}修改成自己的服务器公网IP
1.2.2 如果使用docker部署,也可以修改成数据库对应的容器名(不过要将docker网络和运行容器实例设置同一个网络。docker创立一个网络 docker network create <网络名>,创建容器的时候指定这个网络,后续会讲)
如果是使用其他数据库,修改数据库访问的IP即可
2.将Java项目用Maven打包成Jar包 存入服务器中
不管是Dockfile部署,还是命令行运行,都需要项目对应的Jar包
这边将springboot_08_ssmp简单部署
2.1点击跳过测试
2.2 点击打包得到jar包
生成的jar包都在target目录下
2.3 这里建议用mobaXterm软件将jar包拖入服务器root目录下
3.用虚拟机jdk运行项目
先查看是否有Java运行环境,没有就先去下一个
运行命令如下两条:
java -jar <jar包名.jar> //界面关闭后立刻停止
nohup java -jar <jar包名.jar> & //持续运行
运行成功
4.用Dockerfile部署
4.1 准备好dockerfile文件
文件配置如下(例)
# 基础镜像
FROM openjdk:8 # 取决于你的项目jdk运行版本
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY springboot_08_ssmp-0.0.1-SNAPSHOT.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
参数注意说明:
1. jdk版本
2. COPY 这里要写自己的jar包 (jar包和Dockerfile要同一个文件夹,注意路径别写错,都放在root目录)
将Dockerfile文件发送到服务器root目录中
4.2 创建镜像
利用Dockerfile文件创建镜像 docker build -t dalang . (别漏了有个“.”)
dalang 为自己设置的镜像名字,自定义选择
查看镜像 docker images
4.3 运行项目
创建并运行容器 如果是访问数据库的ip填写的是容器名,这里可以通过 --network <网络名> 设置
例: docker run -d -p 81:81 --name dalang --network <网络名> dalang:latest
照搬例子:docker run -d -p <项目端口>:<项目端口> --name <镜像名> <镜像名>:<版本号>
查看运行的实例 docker ps
5.访问项目
访问路径:http://服务器ip:端口号
手机端访问
新建 查询、删除等接口都没问题
这样一个网站就做好了,如果想指定好听的域名,也需要去阿里云云服务那里买