使用Docker部署若依前后端分离版教程

  • 介绍
  • 准备工作
  • 构建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

猜你喜欢

转载自blog.csdn.net/qq_16182677/article/details/132531034