Docker 构建前后端项目Ruo-Yi

文章目录


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、系统架构图与数据流

bash 复制代码
systemctl stop firewalld.service
setenforce 0

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo

yum install -y docker-ce docker-ce-cli containerd.io
注意:如果是指定版本docker-ce-20.10.18
systemctl start docker.service
systemctl enable docker.service


# 1. 安装Docker(复制粘贴整条命令)
yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io && systemctl start docker.service && systemctl enable docker.service

# 2. 验证Docker(出现版本号即为成功)
docker --version

# 3. 安装Docker Compose
华为镜像加速器

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com" ]
}
EOF



sudo curl -L "https://github.com/docker/compose/releases/download/2.26.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

# 4. 验证Docker Compose(尽量使用高版本)
docker-compose --version

安装Docker和Docker Compose

git clone RuoYi代码

bash 复制代码
mkdir /opt/ruoyi
cd /opt/ruoyi
git clone https://gitee.com/y_project/RuoYi-Vue.git

修改ruoyi配置文件

bash 复制代码
vim /opt/ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application-druid.yml
bash 复制代码
vim /opt/ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application.yml

拉取node 镜像,准备前端容器环境

bash 复制代码
ocker pull node:12
① 进入ruoyi-vue目录
cd /opt/ruoyi/RuoYi-Vue
② 启动node镜像
docker run -itd --rm -v ./ruoyi-ui:/opt node:12 /bin/bash
③ 进入到此容器/opt目录下并打包前端代码
cd /opt
npm install (安装)
构建生产环境代
npm run build:prod

拉取maven镜像

bash 复制代码
##需要下载一个mvn镜像,用于为我们的后端打jar包
docker pull maven:3.6.3-openjdk-11
① 启动maven镜像
docker run -it --rm -v ./RuoYi-Vue:/vue maven:3.6.3-openjdk-11 /bin/bash
② 进入/vue目录,进行mvn命令打jar包
mvn package


退出maven容器,将/opt/ruoyi/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar移到/ruoyi下
mv ruoyi-admin.jar /opt/ruoyi

使用dockerfile定义后端java项目的运行环境

bash 复制代码
mkdir /opt/java
cd /opt/java
#将epel-aliyun.repo、CentOS-aliyun-lhr.repo、ruoyi-admin.jar 文件复制到当前目录
vim Dockerfile
#输入以下内容
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
COPY epel-aliyun.repo /etc/yum.repos.d
COPY CentOS-aliyun-lhr.repo /etc/yum.repos.d
RUN yum clean all && yum makecache
run yum -y install java-1.8.0
WORKDIR /opt
COPY ./ruoyi-admin.jar /opt
CMD [ "java","-jar","ruoyi-admin.jar" ]

编写docker-compos.yml文件构建ruoyi项

在/opt/java目录下定义一个nginx.conf配置文件,内容如下:

bash 复制代码
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
       worker_connections 1024;
}
http {
     log_format main '$remote_addr - $remote_user [$time_local] "$request" '
     '$status $body_bytes_sent "$http_referer" '
     '"$http_user_agent" "$http_x_forwarded_for"';
     access_log /var/log/nginx/access.log main;
     sendfile on;
     tcp_nopush on;
     tcp_nodelay on;
     keepalive_timeout 65;
     types_hash_max_size 4096;
     include /etc/nginx/mime.types;
     default_type application/octet-stream;
     # Load modular configuration files from the /etc/nginx/conf.d directory.
     # See http://nginx.org/en/docs/ngx_core_module.html#include
     # for more information.
     #include /etc/nginx/conf.d/*.conf;
     server {
            listen 80;
            server_name localhost;
            location / {
                root /usr/share/nginx/html;
                index index.html;
            }
            location /prod-api/ {
                proxy_pass http://java.com:8080/;
            }
     }
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2;
# listen [::]:443 ssl http2;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}
bash 复制代码
 docker run -it --rm -v /opt/ruoyi/RuoYi-Vue:/vue maven:3.6.3-openjdk-11 /bin/bash
bash 复制代码
mv ruoyi-admin/target/ruoyi-admin.jar /opt/ruoyi/

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

在/opt/ruoyi目录下写docker-compose.yml文件

bash 复制代码
version: '3'
services:
  ruoyi-web:
    image: nginx:1.25.3
    container_name: ruoyi-web
    hostname: ruoyi-web
    environment:
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    ports:
      - 8888:80
    volumes:
      - /opt/ruoyi/RuoYi-Vue/ruoyi-ui/dist/:/usr/share/nginx/html/
      - /opt/ruoyi/java/nginx.conf:/etc/nginx/nginx.conf:ro
    links:
      - java:java.com
    depends_on:
      - java
  java:
    build: ./java
    container_name: java.server
    hostname: java
    environment:
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    links:
      - db:mysql.server
      - redis:redis.server
    depends_on:
      - db
      - redis
  db:
    image: mysql:5.7
    container_name: mysql.server
    hostname: db
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=ry-vue
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
    volumes:
      - /opt/mysql-data4:/var/lib/mysql
      - /opt/ruoyi/RuoYi-Vue/sql:/docker-entrypoint-initdb.d
  redis:
    image: redis
    container_name: redis.server
    hostname: redis:redis.server
    environment:
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8

查错

java和nginx未启动

将系统默认 yum 源配置文件CentOS-Base.repo复制到当前工作目录

bash 复制代码
cp /etc/yum.repos.d/CentOS-Base.repo ./
 yum -y  install java-1.8.0
相关推荐
Maggie_ssss_supp3 分钟前
Linux-MySQL权限管理
linux·运维·mysql
石像鬼₧魂石5 分钟前
Kali Linux 内网渗透:深度工程实施手册
linux·运维·服务器
运维螺丝钉2 小时前
docker安装应用
运维·docker·容器
以太浮标2 小时前
华为eNSP模拟器综合实验之- 路由表RIB和转发表FIB的关联解析
运维·网络·华为·信息与通信
optimistic_chen2 小时前
【Docker入门】cgroups 资源控制
linux·运维·ubuntu·docker·容器·cgroup
LXY_BUAA2 小时前
《嵌入式操作系统》_内核编译练习与配置文件讲解_20260119
linux·运维·服务器
林九生2 小时前
【MySQL/PostgreSQL】MySQL 到 PostgreSQL 数据迁移:Docker + pgloader
mysql·docker·postgresql
触想工业平板电脑一体机3 小时前
【触想智能】MES工位一体机在自动化生产线上的作用和市场应用前景分析
大数据·运维·自动化
芥子沫3 小时前
书签管理工具使用:Readeck-Docker部署和使用技巧
运维·docker·容器·书签管理
ba_pi3 小时前
每天写点什么2026-01-19-docker如何使用GPU
运维·docker·容器