若依项目部署(Docker)

avatar
作者
筋斗云
阅读量:3

安装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. 启动了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. 添加软件源信息,添加阿里云docker镜像资源的配置文件
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
  1. 更新yum索引列表并安装Docker引擎
sudo yum makecache 
  1. yum安装docker
sudo yum install docker-ce 
  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. 连接服务器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. 启动
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. 进入容器内部修改远程连接
# 进入容器内部 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. 示例
    image.png

Redis

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

Nginx安装

  1. 创建挂载目录
mkdir -p   /home/docker/nginx/html  /home/docker/nginx/conf  /home/docker/nginx/log 
  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. 启动
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. 上传前端文件(dist)至 /home/docker/nginx/html 文件夹下
  2. 访问测试
  3. 示例

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!