- 介绍
- 准备工作
- 构建Vue前端Docker镜像
- 构建Spring Boot后端Docker镜像
- 启动Docker化的若依应用
1. 介绍
在现代应用开发中,使用Docker进行应用部署已经成为一种趋势。本文将详细介绍如何使用Docker部署若依(RuoYi)项目的前后端分离版,以便更高效地管理和扩展应用。
2. 准备工作
在开始之前,确保您已经安装好Docker。若依项目包含了Vue.js前端和Spring Boot后端,我们将分别为它们创建Docker镜像。
3. 构建Vue前端Docker镜像
首先,我们需要为Vue前端构建Docker镜像。您提供的Dockerfile中已经定义了构建步骤。通过将应用代码复制到Nginx的默认web目录中,我们可以将Vue前端部署为一个静态资源。
ruoyi-ui根目录创建docker-compose.yml, Dockerfile, nginx.conf
docker-compose.yml
version: '3'
services:
spring-backend:
image: xhs-backend
networks:
- xhs-network
ports:
- "8080:8080"
vue-frontend:
image: xhs-frontend
networks:
- xhs-network
ports:
- "81:80"
networks:
xhs-network:
driver: bridge
Dockerfile
# 使用 Nginx 作为基础镜像
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
# 将构建好的应用拷贝到 Nginx 的默认 web 目录
COPY dist /usr/share/nginx/html
# Expose 端口
EXPOSE 80
# 启动 Nginx 服务器
CMD ["nginx", "-g", "daemon off;"]
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 127.0.0.1;
charset utf-8;
location / {
root /usr/share/nginx/html;
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;
proxy_pass http://spring-backend:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
最后运行命令创建docker镜像
docker build -t xhs-frontend -f Dockerfile .
4. 构建Spring Boot后端Docker镜像
对于Spring Boot后端,您的Dockerfile定义了构建步骤。这将基于官方的OpenJDK 8镜像,将构建好的JAR文件复制到容器中,并设置应用程序的启动命令。
在若依ruoyi-admin根目录创建
Dockerfile
# 使用官方的 OpenJDK 8 镜像作为基础镜像
FROM openjdk:8-jre-slim
RUN apt-get update && apt-get install -y libfreetype6 fontconfig
ENV JAVA_OPTS="-Djava.awt.headless=true -Djava.awt.fonts=/usr/lib/x86_64-linux-gnu"
# 设置工作目录
WORKDIR /app
# 将构建好的 JAR 文件复制到容器中
COPY target/ruoyi-admin.jar app.jar
# 暴露应用程序端口
EXPOSE 8080
# 启动应用程序
CMD java $JAVA_OPTS -jar app.jar
最后运行命令创建docker镜像
docker build -t xhs-backend -f Dockerfile .
5. 启动Docker化的若依应用
通过在终端中导航到包含Docker Compose文件的目录,并运行docker-compose up -d
命令,您可以启动整个Docker化的若依应用。Nginx将监听80端口,并将请求分发到前端和后端容器。
通过遵循以上步骤,您可以轻松地使用Docker部署若依项目的前后端分离版。这种部署方式可以提供更好的可扩展性、管理性和环境隔离,使您能够更专注于应用开发和功能改进。
docker-compose up -d