提供一个简单的项目

有的话就可以自己部署自己的项目

docker springboot 外部 config springboot项目docker部署_前端

我这里提供一个简单的基于SpringBoot开发的APP后端架构项目, 就是连接了使用了Redis和mysql,使用了JWT 生成Token使用Shiro实现了登录等一些软件必须有的接口


我已经封装成jar包了,没有项目测试部署可以下载下来试试看,第一步操作我已经做完了

1.修改application.yml或者application.properties文件

把端口号,nysql,redis的地址及密码等 ,一些需要动态改变的地址改成类似于

# 端口号
server:
  port: ${port:8888}
复制代码

docker springboot 外部 config springboot项目docker部署_jar_02

docker springboot 外部 config springboot项目docker部署_jar_03

为什么要改成这样? 如果我们不改这些都是采用硬编码的方式进行编写,所以我们要让端口、URL地址采用动态改变。在部署的时候进行填写

改成这样其实本机还是可以运行的

2.打包成jar包

点击右上角,找到package 打包

docker springboot 外部 config springboot项目docker部署_前端_04

3.上传项目到linux中

#创建文件夹 以及进入文件夹
mkdir /opt/dockerapp
cd /opt/dockerapp
复制代码

docker springboot 外部 config springboot项目docker部署_jar_05

输入rz上传jar包至 /opt/dockerapp中

rz复制代码

docker springboot 外部 config springboot项目docker部署_jar_06

4. 制作Docker镜像

上传完后切记:整个过程一定要在/opt/dockerapp文件夹中操作

在此文件夹输入命令:(实现对Dockerfile文件进行编辑,添加如下所示命令。)
vi Dockerfile

在此文件中填入
FROM java:8#指定java8环境镜像
COPY ./lijie-example-boot-2.0.jar /app-springboot.jar	#将当前目录下的jar文件拷贝到特定目录
COPY ./app-entrypoint.sh /								#再拷贝一个脚本文件
RUN chmod +x /app-entrypoint.sh							#再给这个脚本文件设置一个可执行的权限。
ENTRYPOINT ["/app-entrypoint.sh"]						#运行此文件配置容器启动后执行的命令
复制代码

docker springboot 外部 config springboot项目docker部署_jar_07

编写pp-entrypoint.sh文件编辑,添加如下所示命令。
vi app-entrypoint.sh

在此文件输入:(注:下面诸如$PORT是在使用docker create创建容器时设置的环境变量)
重点:(这里是配置那些属性需要动态的赋值,在底下创建容器时指定)
#!/bin/bash
java -jar -Dport=$PORT -DmysqlHost=$MYSQLHOST -DmysqlPassword=$MYSQLPASSWORD -DredisHost=$REDISHOST -DredisPort=$REDISPORT -DredisPassword=$REDISPASSWORD -DuploadPath=$UPLOADPATH /app-springboot.jar
复制代码

docker springboot 外部 config springboot项目docker部署_Docker_08

在此输入构建镜像命令:(后面的:1.0  是自定义版本)
docker build -t lijie-example-boot-2.0.jar:1.0 .
复制代码

docker springboot 外部 config springboot项目docker部署_docker_09

查看创建的镜像
docker images复制代码

docker springboot 外部 config springboot项目docker部署_Docker_10

5.创建Docker容器

创建容器命令:(这里是动态的赋值配置文件) 根据自己实际情况来赋值,注意

创建容器命令:(这里是动态的赋值配置文件)
docker create --name app-springboot -t -p 8080:7000 -e PORT=7000 -e MYSQLHOST=120.77.0.58:3303/lijie -e MYSQLPASSWORD=123456 -e REDISHOST=120.77.0.58 -e REDISPORT=16379 -e REDISPASSWORD='' -e UPLOADPATH=/opt/java/uploadImage lijie-example-boot-2.0.jar:1.0
复制代码

docker springboot 外部 config springboot项目docker部署_jar_11

查看所有容器
docker ps -a
复制代码

docker springboot 外部 config springboot项目docker部署_docker_12

6.启动自己创建的Docker容器

找到我们自己的项目容器id,运行下面命令
docker start 容器id运行
复制代码

docker springboot 外部 config springboot项目docker部署_前端_13

查看容器日志看一下,是否成功
docker logs 容器id
复制代码

docker springboot 外部 config springboot项目docker部署_jar_14

发现已经成功启动了,端口号就是自己创建容器是定义的端口号

7.外网访问项目

1.先找到Linux的lp地址,如果知道IP地址就跳过

如果是虚拟机先关闭防火墙
systemctl stop firewalld

输入ifconfig查看IP地址
ifconfig复制代码

docker springboot 外部 config springboot项目docker部署_jar_15

如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放8080端口号 具体步骤访问:阿里云服务器配置外网访问,打开8080端口

docker springboot 外部 config springboot项目docker部署_Docker_16

配置好了上面后即可访问项目,此项目只有后端 输入:(IP地址+端口号+/doc.html) 即可查看后端接口 例如 http://120.77.0.34:8080/doc.html

docker springboot 外部 config springboot项目docker部署_docker_17

8.测试项目

此项目只能查看后端,这是给app提供的java后端项目

除了俩个登录接口(后端登录,app登录)的token是可以随便填写的,其他的接口需要使用的话,必须登录后拿去正确的token才可使用

1.下面是测试登录接口(用户名:admin 密码:123456 token随便填)

docker springboot 外部 config springboot项目docker部署_jar_18

而其他接口的话,就需要正确的token才可访问,例如

docker springboot 外部 config springboot项目docker部署_jar_19