0


在linux上使用docker部署RuoYi前后端分离开源项目

文章目录


前言

本次将采用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 [容器名称]

启动成功
在这里插入图片描述

标签: docker linux 开源

本文转载自: https://blog.csdn.net/cwy534363081/article/details/127007712
版权归原作者 快乐的猪小屁 所有, 如有侵权,请联系我们删除。

“在linux上使用docker部署RuoYi前后端分离开源项目”的评论:

还没有评论