当前位置:   article > 正文

若依项目部署(Docker)_若依 docker部署

若依 docker部署

安装docker

离线

  1. 下载docker安装包: https://download.docker.com/linux/static/stable/x86_64/
  2. 解压安装
    tar xzvf /path/to/.tar.gz
  3. 复制docker目录下的文件到/usr/bin目录下
    sudo cp docker/* /usr/bin/
    (/user/bin 目录包含系统中可执行的文件,将解压后的文件复制到该目录下,可以让这些文件处于可执行的位置,以便用户直接通过命令调用)
  4. 后台运行docker的守护进程
    sudo dockerd &
  5. 设置开机自动
    在/etc/systemd/system/目录中创建一个名为docker.service的服务配置文件sudo vi /etc/systemd/system/docker.service 将以下内容粘贴到文件中:
[Unit]
Description=Docker Service
Documentation=https://docs.docker.com
After=network.target

[Service]
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
Restart=always
StartLimitIntervalSec=0

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. 设置远程连接(两种方式,推荐第二种)
  2. 启动了docker的守护进程,并且指定了监听地址,docker未启动时才可运行此命令
    dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 &
    2.编辑启动文件
    /etc/systemd/system/docker.service 或 /lib/systemd/system/docker.service
    如图:找到ExecStart这一行 并且替换为
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
    image.png

在线

  1. 安装必要的系统工具 yum-utils ,device-mapper-persistent-data ,lvm2 这三个系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 1
  1. 添加软件源信息,添加阿里云docker镜像资源的配置文件
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1
  1. 更新yum索引列表并安装Docker引擎
sudo yum makecache
  • 1
  1. yum安装docker
sudo yum install docker-ce
  • 1
  1. 设置远程连接(两种方式,推荐第二种)
  2. 启动了docker的守护进程,并且指定了监听地址,docker未启动时才可运行此命令
    dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 &
    2.编辑启动文件
    /etc/systemd/system/docker.service 或 /lib/systemd/system/docker.service
    如图:找到ExecStart这一行 并且替换为
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
    image.png

源码下载

若依官网 https://www.ruoyi.vip/
选择前后端分离版本

后端打包部署

  1. 配置jdk,maven等
  2. 打包
  3. 创建Dockerfile文件,copy如下内容
# 基础镜像
FROM java:openjdk-8u111-jre

# 维护者信息
MAINTAINER zj

# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone

# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /tmp

# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD ./ruoyi-admin/target/ruoyi-admin.jar ruoyi-admin.jar

# 容器启动执行命令
ENTRYPOINT ["java", "-Xmx128m","-Djava.security.egd=file:/dev/./urandom", "-jar", "/ruoyi-admin.jar"]

# 声明容器提供服务端口
EXPOSE 8080

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  1. 连接服务器docker
    image.png
  2. 配置端口镜像名称等
    image.png
  3. 启动

前端打包

  1. 修改后端路径
    image.png
  2. 本机装有node环境
  3. npm install
  4. build 打包文件
    image.png

中间件安装部署

mysql

  1. 创建挂载目录
mkdir -p  /usr/local/mysql/data  /usr/local/mysql/conf.d
  • 1
  1. 启动
docker run --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 进入容器内部修改远程连接
# 进入容器内部
docker exec -it mysql /bin/bash
# mysql -u root -p
# 选择数据库
show databases;
use mysql;
# 修改连接权限
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';
 
ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
 
-- 刷新权限
FLUSH PRIVILEGES;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 连接测试
  2. 示例
    image.png

Redis

  1. 执行命令
docker run -d -p 6379:6379 --name redis --restart always redis:latest 
  • 1
  1. 连接工具测试连接
    无用户名 密码:启动命令设置
  2. 示例
    image.png

Nginx安装

  1. 创建挂载目录
mkdir -p   /home/docker/nginx/html  /home/docker/nginx/conf  /home/docker/nginx/log
  • 1
  1. 上传 .conf 配置文件并修改 将文件放至/home/docker/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;
        location / {
        root    /usr/share/nginx/html; 
        index  index.html index.htm;
        }
        
      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://39.100.94.212:8080/;       #后台项目的运行端口
}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  1. 启动
docker  run --restart always --name nginx8888 --volume "/home/docker/nginx/html":/usr/share/nginx/html --volume "/home/docker/nginx/conf/nginx.conf":/etc/nginx/nginx.conf -p 8888:80 -d nginx
  • 1
  1. 上传前端文件(dist)至 /home/docker/nginx/html 文件夹下
  2. 访问测试
  3. 示例
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/954630
推荐阅读
相关标签
  

闽ICP备14008679号