本篇从已有虚拟机/服务器 安装好dokcer为基础开始讲解
1.部署mysql
创建conf data init三个文件夹
conf目录存放在mysql配置文件
init目录存放着若依数据库sql文件(从navicat导出的并非若依框架自带sql)
创建一个属于本次若依部署的网段(只有在一个网段的容器才能通过容器名通信)
启动mysql命令 -v是挂载,宿主机文件挂载到容器中
docker run -d --name mysql -p 3309:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 -v /usr/yxt/mysql/data:/var/lib/mysql -v /usr/yxt/mysql/init:/docker-entrypoint-initdb.d -v /usr/yxt/mysql/conf:/etc/mysql/conf.d --network ruoyinet mysql
通过navicat连接查看
mysql部署成功
2.部署Redis
docker run -d --name redis -p 6379:6379 --network ruoyinet redis
3.部署后端服务
修改 redis和mysql连接的ip地址换为容器名称
上传若依的jar包,并编写一个dockerfile文件
进入Dockerfile文件目录执行命令 打包成镜像
docker build -t ryadmin .
启动镜像为容器
docker run -d --name ryadmin -p 8090:8090 --network ruoyinet ryadmin
网页测试访问接口或查看容器日志 后端服务启动成功
4.部署前端服务
上传打包好的若依前端
编写nginx.conf 文件
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/json;sendfile on;keepalive_timeout 65;server {listen 8091;# 指定前端项目所在的位置location / {root /usr/share/nginx/html/ruoyi-ui;try_files $uri $uri/ /index.html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}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://ryadmin:8090/;
# rewrite /api/(.*) /$1 break;
# proxy_pass http://ramin:8090;}}}
启动docker中nginx镜像并将前端项目与配置文件进行挂载
docker run -d --name nginx -p 8091:8091 -v /usr/yxt/nginx:/usr/share/nginx/html -v /usr/yxt/nginx/nginx.conf:/etc/nginx/nginx.conf --network ruoyinet nginx
访问前端页面 成功
5.使用dockerCompose部署
Docker Compose通过一个单独的docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。
先将前面的容器全部删除
编写一个docker-compose.yml文件
version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3307:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "/usr/yxt/mysql/data:/var/lib/mysql"- "/usr/yxt/mysql/init:/docker-entrypoint-initdb.d"- "/usr/yxt/mysql/conf:/etc/mysql/conf.d"networks:- ruoyinetredis:image: rediscontainer_name: redisports:- "6379:6379"networks:- ruoyinetryadmin:build: context: /usr/yxt/radmindockerfile: Dockerfilecontainer_name: ryadminports:- "8090:8090"networks:- ruoyinetdepends_on:- mysql- redisnginx:image: nginxcontainer_name: nginxports:- "8091:8091"volumes:- "/usr/yxt/nginx:/usr/share/nginx/html"- "/usr/yxt/nginx/nginx.conf:/etc/nginx/nginx.conf"depends_on:- ryadminnetworks:- ruoyinet
networks:ruoyinet:name: rynet
在docker-compose.yml文件目录下输入命令
docker compose up -d