docker compose部署ruoyi框架

本文详细描述了在CentOS系统中卸载旧版Docker、配置yum源、安装DockerCE和DockerCompose的步骤,以及如何使用Dockerfile构建应用镜像和配置Nginx以代理后端API。还涉及了阿里云镜像的使用和前端部署设置。
摘要由CSDN通过智能技术生成

docker安装

1、卸载旧版docker

yum remove docker \ docker-client \ docker-client-latest \ docker-common \
 docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

2、配置yum(前提:配置IP后,可以联网),安装docker

//安装yum工具
yum clean all
yum repolist
yum update
yum install -y yum-utils

配置Docker的yum源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker:

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

查看安装情况:

docker version

启动docker,并开机自启:

systemctl start docker

systemctl enable docker

配置阿里云docker镜像:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

安装docker compose

yum install -y epel-release
yum install -y docker-compose

查看版本:
docker-compose --version

若依后端:

mkdir docker

cd docker

vi Dockerfile

Dockerfile文件:

FROM java:8

# copy jar包 命名为 app.jar

COPY *.jar /app.jar

# 暴露端口

EXPOSE 8080

# 启动 jar包 可通过 PARAM 配置启动参数

ENTRYPOINT java  ${PARAM} -jar app.jar

vi docker-compose.yml

docker-compose.yml文件(jar包需要根据文件修改配置,):

version: "3.3"

services:

  # mysql服务

  mysql:

    image: mysql

    volumes:

      - ./mysql:/var/lib/mysql

    restart: always

    container_name: ruoyi-mysql

    ports:

      - 3306:3306

    environment:

      - MYSQL_ROOT_PASSWORD=000000

      - MYSQL_DATABASE=ry

      - MYSQL_USER=ruoyi

      - MYSQL_PASSWORD=ruoyi

  # redis服务

  redis:

    image: library/redis:alpine

    container_name: ruoyi-redis

    ports:

      - 6379:6379

    volumes:

      - ./redis/data:/data

  # 构建若依后端

  ruoyiapp:

    # 镜像来源 自己构建的

    image: ruoyiapp

    # build值为 . 表示从当前目录找Dockerfile进行构建

    build: .

    restart: always

    container_name: ruoyi-app

    # 对外暴露端口 8080

    ports:

      - 8080:8080

    # 后端项目需要的配置,可修改

    environment:

      - REDIS_HOST=redis

      - REDIS_PORT=6379

      - REDIS_DATABASE=0

      - REDIS_PASSWORD=

      - MYSQL_HOST=mysql

      - MYSQL_PORT=3306

      - MYSQL_DATABASE=ry

      - MYSQL_USERNAME=ruoyi

      - MYSQL_PASSWORD=ruoyi

    depends_on:

      - redis

      - mysql

启动:

docker-compose up --build -d

docker ps 

docker stop ruoyi-app

通过navicat导入表结构;

docker compose down

docker compose up -d

验证(等一分钟):

curl localhost:8080

前端:

nginx配置文件:

# For more information on configuration, see:

#   * Official English Documentation: http://nginx.org/en/docs/

#   * Official Russian Documentation: http://nginx.org/ru/docs/

user root;

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 ruoyi;

        index index.html;

        # root  /www/eat/chi-master;

        # root  /www/eat/dist;

        root /root/docker/dist;

        #error_page   404   /404.html;

   

       

       

        location /prod-api/

    {

        expires 12h;

        if ($request_uri ~* "(php|jsp|cgi|asp|aspx)")

        {

             expires 0;

        }

        proxy_pass http://192.168.200.128:8080/;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header REMOTE-HOST $remote_addr;  

    }

}

# 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 {

#        }

#    }

}


 

  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值