文章目录
前言
本次将采用docker compose快速编排部署RuoYi前后端分离开源项目。
前期准备
Linux环境(本文采用Centos7)
一、安装Docker
Docker安装官方文档:https://docs.docker.com/engine/install/centos/
1.更新yum
yum update
2.卸载旧版本
yum remove docker\
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.配置仓库地址
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装Docker引擎
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
5.设置Docker开机启动
systemctl enabledocker
6.启动Docker服务
systemctl start docker
使用默认的仓库地址下载速度比较慢,容易连接超时下载失败,我们可以在/etc/docker目录下加入daemon.json文件
然后执行systemctl restart docker重启Docker服务
daemon.json
{"registry-mirrors":["https://8kppz1zc.mirror.aliyuncs.com"]}
验证Docker
docker run hello-world
出现这个证明Docker已经安装并且启动成功
二、配置Docker
1.编写Dockerfile
在/root/ruoyi目录下创建Dockerfile文件,Dockerfile文件内容如下
FROM java:8
EXPOSE 8080
ADD ruoyi-admin.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java", "-Duser.timezone=GMT+8", "-Xms800m", "-Xmx800m", "-jar", "/app.jar", "--spring.profiles.active=druid"]
2.编写docker-compose.yml
在/root/ruoyi目录下创建docker-compose.yml文件,docker-compose.yml文件内容如下
文件内容中涉及到的目录请事先创建好“/root/nginx/admin”,“/root/mysql/conf”,“/root/mysql/data”
version:"3.9"services:nginx:# 服务器名称,用户自定义image: nginx:latest # 镜像版本restart: always
ports:-80:80# 暴露端口volumes:# 挂载- /root/nginx/admin:/usr/share/nginx/admin
- /root/nginx/nginx.conf:/etc/nginx/nginx.conf
privileged:true# 这个必须要,解决nginx的文件调用的权限问题links:- ruoyi
mysql:image: mysql:5.7.27
restart: always # 重启策略ports:- 3306:3306volumes:- /root/mysql/conf:/etc/mysql/conf.d # 挂载配置文件- /root/mysql/data:/var/lib/mysql # 挂载数据command:[#执行多条指令
'mysqld','--innodb-buffer-pool-size=20M','--character-set-server=utf8','--collation-server=utf8_general_ci','--default-time-zone=+8:00','--lower-case-table-names=1']environment:# 指定用户root的密码、- MYSQL_ROOT_PASSWORD=123456
redis:image: redis:latest
ruoyi:image: ruoyi-admin:latest
build: . # 表示以当前目录下的Dockerfile开始构建镜像volumes:- /root/ruoyi/logs:/home/ruoyi/logs
- /root/ruoyi/uploadPath:/home/ruoyi/uploadPath
depends_on:# 依赖- mysql
- redis
三、配置nginx
在/root/nginx/目录下创建nginx.conf
worker_processes 1;
events {
worker_connections 1024;}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /usr/share/nginx/admin;
location / {
try_files $uri$uri/ /index.html;
index index.html index.htm;
add_header Cache-Control no-cache;}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ruoyi:8080/;}
error_page 500502503504 /50x.html;
location = /50x.html {
root html;}}}
五、修改RuoYi项目相关配置文件
1.修改redis地址如图
2.修改文件上传文件夹为linux格式
3.修改数据库地址,如图
注意:ruoyi项目的数据地址默认为启用SSL,请将数据库连接参数中的useSSL改为false
六、项目部署
1.编译打包项目
至此相关配置都已经完成,接下来就是将前端项目和后端项目分别编译打包后上传至对应目录
前端项目上传至/root/nginx/admin
后端项目编译成ruoyi-admin.jar上传至/root/ruoyi
2.docker compose自动编排部署项目
一切准备就绪后进入/root/ruoyi目录下执行docker compose up -d
如果想查看执行过程中的错误,可以先将-d参数去掉
cd /root/ruoyi
docker compose up -d
查看ruoyi项目启动日志
dockerps# 先查看容器名称
docker logs -f [容器名称]
启动成功
版权归原作者 快乐的猪小屁 所有, 如有侵权,请联系我们删除。