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
相关推荐
BioRunYiXue1 分钟前
从现象到机制:蛋白降解调控研究的系统策略与实验设计
java·linux·运维·服务器·网络·人工智能·eclipse
supersolon6 分钟前
OpenClaw安装碰到的一些问题和解决方法
linux·运维·ai·openclaw·龙虾
道清茗19 分钟前
【Kubernetes知识点问答题】PriorityClass、HPA、Argo CD 与 CI/CD 流水线
ci/cd·容器·kubernetes
sdm07042725 分钟前
linux权限
linux·运维·服务器
yuezhilangniao25 分钟前
大白话AI运维K8S整体思路和相关名词-结合腾讯云
运维·人工智能·kubernetes
万里不留行30 分钟前
解决ubuntu docker拉取环境失败问题
linux·ubuntu·docker
piepis34 分钟前
Linux 下升级 Python 3.7 → 3.9(离线)并内网安装本地python-packages
linux·运维·python
深念Y37 分钟前
Nginx和Spring Cloud Gateway
运维·服务器·网络·网关·nginx·spring cloud·微服务
无名-CODING39 分钟前
从零开始!Vue3+SpringBoot前后端分离项目Docker部署实战(下):Vue前端Nginx反代与致命坑点盘点
前端·spring boot·docker
Elastic 中国社区官方博客43 分钟前
测试 Elasticsearch,现在变得更简单了
大数据·运维·elasticsearch·搜索引擎·全文检索