docker部署ruoyi系统
第一步 安装docker
#安装前先卸载操作系统默认安装的docker,
sudo apt-get remove docker docker-engine docker.io containerd runc#安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
准备安装
#添加 Docker 官方 GPG key (可能国内现在访问会存在问题)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 阿里源(推荐使用阿里的gpg KEY)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg#添加 apt 源:
#Docker官方源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#阿里apt源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#更新源
sudo apt update
sudo apt-get update
安装
#安装最新版本的Docker
sudo apt install docker-ce docker-ce-cli containerd.io
#等待安装完成#查看Docker版本
sudo docker version#查看Docker运行状态
sudo systemctl status docker
第二步 拉取镜像
docker pull java:8
docker pull mysql:8.0.19
docker pull redis:6.0.8
docker pull nginx:1.18.0
第三步:后端部署
启动MySQL容器
docker run --name mysql -v /myapp/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.19
# MYSQL_ROOT_PASSWORD=123456设置密码为‘123456’,可根据具体需求自行修改
# /myapp/mysql:/var/lib/mysql mysql路径容器挂载,可根据具体需求自行修改
启动Redis容器
docker run -d --name redis -p 6379:6379 redis:6.0.8
# requirepass "123456"设置密码为‘123456’,可根据具体需求自行修改 若依项目里面的redis没有设置密码,这里不添加requirepass
将数据导入容器MySQL
方法一:将原来项目中的数据库转储为SQL文件,在将这个文件放入linux中,再使用容器内的mysql将其导入
# 1、查看容器id
docker ps -a
# 2、进入容器
docker exec -it [容器ID/容器名] /bin/bash
# 3、进入容器后登录MySQL
mysql -u root -p
# 4、新建数据库,进入数据库
create databases pscs
use pscs
show databases
# 5、导入数据
source /var/lib/mysql/cat.sql;
方法二 使用可视化工具导入数据
通过可视化工具navicat通过ip连接服务器数据库,新建数据库,运行sql文件导入数据(需要先将vue项目的数据库转储为SQL文件)
转储完成以后使用刚刚连接到服务器的数据库,运行这个SQL文件
修改springboot配置文件,打包上传服务器
在application.yml中,修改redis的信息,将host改为linux的ip,port端口号(redis开放的端口号,一般为6379),password密码(前面配置redis时设置的密码),我没有设置密码,所以密码不用改这里。
在application-druid.yml中对MySQL数据库配置信息进行修改
如果linux中的mysql数据库名字和项目中的数据库名字一致则不需要修改,否则将项目中的数据库名改为和linux的数据库一致,linux的数据库名是pscs,这里不需要修改。
之后打包springboot项目
先clean项目,再install 注意!!!!!:如果这一步出错也可以使用Lifecycle中的install进行打包
打包完成之后Jar包在本项目下的ruoyi-admin\target\下,名为ruoyi-admin.jar
在linux中新建一个文件夹,将打包好的jar包上传至文件夹中,并创建一个Dockerfile文件
Dockerfile中写入
#基础镜像使用jdk1.8
FROM java:8#作者
MAINTAINER pan# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp# 将jar包添加到容器中并更名
ADD ruoyi-admin.jar app.jar# 运行jar包
RUN bash -c 'touch /app.jar'# 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]#ENTRYPOINT ["nohup","java","-jar","/data/cat/ruoyi-admin.jar","&"]#暴露8080端口,后端系统启动端口
EXPOSE 8080
在Dockerfile所在目录下构建镜像
docker build -t network:1.0 .
启动后端镜像
# 启动后端镜像
docker run -d --name cat -p 8080:8080 network:1.0
# 查看后端镜像启动
docker ps -a
# 如启动失败可进入日志查看失败原因、
docker logs -f -t --tail 1000 [容器ID]
如果失败了,检测防火墙是否放行
前端部署:(参考博客 Ubuntu使用docker部署ruoyi系统)
因为需要nginx的初始化配置文件,为了保证不出错,
所以我们直接启动一个nginx容器,把配置文件拉取下来,然后删除容器