docker 部署 django + mysql + vue 项目

座右铭:怎么简单怎么来,以实现功能为主。

欢迎大家关注公众号与我交流

项目目录结构,在 Vue 和 Django 项目 根目录下 创建 Dockerfile文件,在父级目录下 创建 docker-compose.yml 文件

Project # 父级目录
├─client # vue3 项目目录
│  ├─public
│  └─src
│      ├─* files
│  ├─* files
│  ├─Dockerfile
└─server # Django 项目目录
│    ├─server
│    └─service
│    ├─Dockefile
│    └─manage.py
└─docker-compose.yml

client 下的 Dockerfile这么写

FROM node:latest

LABEL name="client-vue" auth="your name"

RUN mkdir -p /app/client

WORKDIR /app/client

RUN npm config set -g registry https://registry.npmmirror.com/

COPY dist/ /app/client

COPY package.json /app/client/

RUN npm install

RUN echo "client build finished ..."

server 下的 Dockerfile 这么写

FROM python:3.8

LABEL name="server-django" auth="your name"

RUN mkdir -p /app/server

WORKDIR /app/server

COPY . /app/server

RUN apt-get update && apt-get install -y libgl1

RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

RUN echo "server-django build finished ..."

然后 Project 下的 docker-compose.yml 这么写

version: '3.3'
services:
  ess-client:
    build: ./client
    command: node ./server.js
    ports:
      - "5173:5173"
    restart: always
    volumes:
      - ./client:/app/client
    container_name: ess_client_vue
  ess-server:
    build: ./server
    command: python manage.py runserver 0.0.0.0:8088
    volumes:
      - ./server:/app/server
    ports:
      - "8088:8088"
    restart: always
    container_name: ess_server_django
    depends_on:
      - ess-db
  ess-db:
    image: mysql:latest
    container_name: ess_db_mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myess
    ports:
      - "3307:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/conf:/etc/mysql/conf.d
    restart: always

完成最后的配置修改就可以开始部署啦

  1. 在 vue 项目中 要修改 axios 请求后端的 api url地址
  2. 修改 server 下 mysql 配置
    1. mysql_host 为本机真实ip
    2. mysql 其他配置为 docker-compose.yml 中的配置
  3. 进入到 vue项目中 先build 一下,生成 dist 文件
  4. 在父级目录下,即 Project 目录下 运行 docker-compose up -d,等待流程结束
  5. 进入到 server 的 容器中,进行数据库迁移等操作
    1. python manage.py makemigrations
    2. python manage.py migrate
    3. python manage.py createsuperuser
  6. 然后 就可以通过 IP:5173 访问你部署好的项目啦
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卫龙~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值