若依vue -【 111 ~ 更 ~ 127 完 】
【更】111 3.5.0版本更新介绍
112 使用docker实现一键部署
1、安装docker
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
# 用来管理docker多配置,因为的话,我们有很多配置在里面.
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、检查docker
和docker-compose
是否安装成功
docker version
docker-compose --version
3、文件授权(提示:权限不足,不能使用命令)
chmod +x /usr/local/bin/docker-compose
4、下载若依docker插件,上传到自己的服务器目录
插件相关脚本实现
ruoyi-vue/集成docker实现一键部署.zip
链接: https://pan.baidu.com/s/13JVC9jm-Dp9PfHdDDylLCQ 提取码: y9jt
- 其中
db目录
存放ruoyi数据库脚本
- 其中
jar目录
存放打包好的jar应用文件
- 其中
conf目录
存放redis.conf
和nginx.conf
配置- 其中
html\dist目录
存放打包好的静态页面文件- 数据库
mysql
地址需要修改成ruoyi-mysql
- 缓存
redis
地址需要修改成ruoyi-redis
- 数据库脚本头部需要添加
SET NAMES 'utf8';
(防止乱码)
5、启动docker
systemctl start docker
6、构建docker服务
docker-compose build
7、启动docker容器
docker-compose up -d
8、访问应用地址
打开浏览器,输入:(http://localhost:80 ),若能正确展示页面,则表明环境搭建成功。
启动服务的容器docker-compose up ruoyi-mysql ruoyi-server ruoyi-nginx ruoyi-redis
停止服务的容器docker-compose stop ruoyi-mysql ruoyi-server ruoyi-nginx ruoyi-redis
时区设置
如果服务器的时区不正确,可以在
dockerfile
文件中添加ENV TZ=Asia/Shanghai
9、配置文件详解
(1)docker-compose.yml
(2)mysql-dockerfile
# 基础镜像
FROM mysql:5.7
# author
MAINTAINER ruoyi# 执行sql脚本
# 把db目录下的所有以.sql结尾的脚本文件,都添加到/docker-entrypoint-initdb.d/目录里去。
# docker命令安装mysql时,会执行/docker-entrypoint-initdb.d/目录下的所有.sql结尾的文件。
# 安装数据库、建库、建表一次搞定。
ADD ./db/*.sql /docker-entrypoint-initdb.d/
(3)redis-dockerfile
# 基础镜像
FROM redis
# author
MAINTAINER ruoyi# 挂载目录
# VOLUME指令:
# 用途:VOLUME指令用于在Docker容器中创建一个挂载点。
# 持久性:挂载点创建后,与主机的目录进行绑定,使得容器中的数据可以在容器删除或停止后保留在主机上,实现数据的持久化保存。
# 执行时机:VOLUME指令在构建Docker镜像时就会生效,并在容器运行时使用。
VOLUME /home/ruoyi/redis
# 创建目录
RUN mkdir -p /home/ruoyi/redis
# 将工作目录设置为/home/ruoyi/redis,以便在后续的指令中执行相对路径操作时基于该目录。
WORKDIR /home/ruoyi/redis
# 复制conf配置文件到此路径下
COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf
(4)nginx-dockerfile
# 基础镜像
FROM nginx
# author
MAINTAINER ruoyi# 挂载目录
VOLUME /home/ruoyi/projects/ruoyi-ui
# 创建目录
RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
# 指定路径
WORKDIR /home/ruoyi/projects/ruoyi-ui
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制前端打包那些静态文件到此路径下
COPY ./html/dist /home/ruoyi/projects/ruoyi-ui
(5)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 /home/ruoyi/projects/ruoyi-ui;try_files $uri $uri/ /index.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;# 由http://127.0.0.1:8080变成http://ruoyi-server:8080/,去做访问# 而http://ruoyi-server:8080/调用的是docker-compose.yml中定义的container_name: ruoyi-server容器proxy_pass http://ruoyi-server:8080/;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
}# requirepass 123456
(6)提示:公共的目录都应该通过数据卷的方式在容器(虚拟机)和宿主机之间进行共享。