【若依系统docker compose一键部署项目教程】
若依项目docker-compose一键部署
·
1、构建dockerfile文件
1.1创建文件夹和目录(如下)

1.2构建Dockerfile文件

2、创建文件夹和准备文件资源


把nginx配置文件放conf.d文件夹下
配置内容如下:
server {
listen 80;
server_name localhost;
client_max_body_size 1024m; # 允许最大 1GB 的请求体(根据需求调整)
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_pass http://ruoyi-system:8081/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}


将若依的初始化sql放在initsql文件夹下
打包前端代码为dist放在nginx目录下
3、构建docker-compose.yml文件
内容如下:
services:
# MySQL数据库服务
mysql:
image: mysql:5.7
container_name: ruoyi-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root # 根用户密码
MYSQL_DATABASE: ry-vue # 初始化数据库名
MYSQL_USER: ruoyi # 应用用户名
MYSQL_PASSWORD: root # 应用用户密码
TZ: Asia/Shanghai # 时区设置
ports:
- "33061:3306"
volumes:
- ./mysql/mysql-data:/var/lib/mysql # 数据持久化
- ./mysql/initsql:/docker-entrypoint-initdb.d # 初始化脚本(可选)
networks:
- ruoyi-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
interval: 10s
timeout: 5s
retries: 5
# Redis缓存服务
redis:
image: redis:6.2-alpine
container_name: ruoyi-redis
restart: always
ports:
- "6379:6379"
volumes:
- ./redis/redis-data:/data # 数据持久化
networks:
- ruoyi-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# SpringBoot应用服务
ruoyisystem:
build:
context: ./ # SpringBoot项目根目录
dockerfile: Dockerfile # Dockerfile路径
container_name: ruoyi-system
restart: always
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
environment:
#SPRING_PROFILES_ACTIVE: prod # 激活的配置文件
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/ry-vue?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: root
SPRING_REDIS_HOST: redis
SPRING_REDIS_PORT: 6379
TZ: Asia/Shanghai
networks:
- ruoyi-network
ports:
- "8081:8081"
# Nginx服务 - 反向代理
nginx:
image: nginx:1.21-alpine
container_name: ruoyi-nginx
restart: always
ports:
- "8090:80"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d # Nginx配置文件
- ./nginx/html:/usr/share/nginx/html # 静态资源
- ./nginx/nginx-logs:/var/log/nginx # 日志持久化
depends_on:
- ruoyisystem
networks:
- ruoyi-network
# 自定义网络
networks:
ruoyi-network:
driver: bridge
4、安装docker和compose
安装docker我就不赘述了,自己网上找教程。
5、一键启动和停止项目
上传整个文件夹到服务器。
进入docker-compose.yml文件所在目录。执行命令:
一键启动:docker compose up -d
一键关闭: docker compose down
更多推荐
所有评论(0)