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

文章目录

  • 前言
    • 前期准备
  • 一、安装Docker
    • 1.更新yum
    • 2.卸载旧版本
    • 3.配置仓库地址
    • 4.安装Docker引擎
    • 5.设置Docker开机启动
    • 6.启动Docker服务
      • daemon.json
    • 验证Docker
  • 二、配置Docker
    • 1.编写Dockerfile
    • 2.编写docker-compose.yml
  • 三、配置nginx
  • 五、修改RuoYi项目相关配置文件
    • 1.修改redis地址如图
    • 2.修改文件上传文件夹为linux格式
    • 3.修改数据库地址,如图
  • 六、项目部署
    • 1.编译打包项目
    • 2.docker compose自动编排部署项目


前言

本次将采用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 enable docker

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已经安装并且启动成功
在linux上使用docker部署RuoYi前后端分离开源项目_第1张图片

二、配置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:3306
    volumes:
      - /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   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

五、修改RuoYi项目相关配置文件

1.修改redis地址如图

在linux上使用docker部署RuoYi前后端分离开源项目_第2张图片

2.修改文件上传文件夹为linux格式

在linux上使用docker部署RuoYi前后端分离开源项目_第3张图片

3.修改数据库地址,如图

注意:ruoyi项目的数据地址默认为启用SSL,请将数据库连接参数中的useSSL改为false

在linux上使用docker部署RuoYi前后端分离开源项目_第4张图片

六、项目部署

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项目启动日志

docker ps # 先查看容器名称
docker logs -f [容器名称]

启动成功
在linux上使用docker部署RuoYi前后端分离开源项目_第5张图片

你可能感兴趣的:(linux,docker,linux,开源)