在CentOS上使用Docker部署前后端分离项目的完整指南


当在CentOS上使用Docker部署前后端分离项目时,需要遵循一系列步骤来实现这一目标。以下是每个步骤的详细内容:

步骤1:安装Docker和Docker Compose

1.1 安装Docker

在CentOS上安装Docker,可以按照以下步骤进行:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

1.2 启动Docker服务

安装完Docker后,启动Docker服务:

sudo systemctl start docker

1.3 安装Docker Compose

安装Docker Compose可以通过以下命令完成:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

步骤2:准备应用环境

2.1 Docker化Django后端

  1. 在Django项目根目录下创建Dockerfile,例如backend/Dockerfile:
FROM python:3.8

ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code

COPY requirements.txt /code/
RUN pip install -r requirements.txt

COPY . /code/
  1. 确保requirements.txt包含了所有必要的依赖。

2.2 Docker化Vue前端

  1. 在Vue项目根目录下创建Dockerfile,例如frontend/Dockerfile:
FROM node:lts-alpine

WORKDIR /app
COPY package*.json ./
RUN npm install

COPY . .

RUN npm run build

步骤3:配置Redis、Nginx、RabbitMQ和MySQL

3.1 Redis配置

通常情况下,直接在docker-compose.yml文件中配置Redis即可。

3.2 Nginx配置

创建Nginx配置文件nginx/default.conf,配置前后端服务的代理。

server {
    listen 80;
    
    location / {
        proxy_pass http://frontend:80;
    }
    
    location /api/ {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass http://backend:8000;
    }
}

3.3 RabbitMQ和MySQL

使用默认的Docker镜像,并通过环境变量进行必要的配置。

步骤4:编写Docker Compose文件

在项目根目录下创建docker-compose.yml文件,配置所有服务的一次性启动和管理:

version: '3'

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: 'yourdb'
      MYSQL_USER: 'user'
      MYSQL_PASSWORD: 'password'
      MYSQL_ROOT_PASSWORD: 'rootpassword'

  redis:
    image: redis:alpine

  rabbitmq:
    image: rabbitmq:3-management

  backend:
    build: ./backend
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./backend:/code
    depends_on:
      - db
      - redis

  frontend:
    build: ./frontend
    volumes:
      - ./frontend:/app

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - backend
      - frontend

步骤5:构建和启动服务

运行以下命令构建并启动所有服务:

docker-compose up --build

步骤6:测试项目

  • 测试Django后端: 访问http://your-server-ip/api/,应能看到Django应用的响应。
  • 测试Vue前端: 访问http://your-server-ip/,应能看到Vue应用的界面。
  • Redis、RabbitMQ和MySQL测试: 通过Django应用尝试连接和使用这些服务,确保它们被正确配置且可以互相通信。

步骤7:监控和日志

使用Docker Compose,可以通过docker-compose logs命令查看所有容器的日志,这对于监控应用和调试问题非常有用。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容