首页 > 数据库 >docker 部署 django + mysql + vue 项目

docker 部署 django + mysql + vue 项目

时间:2024-03-08 15:45:51浏览次数:18  
标签:vue RUN name app server client mysql django

​项目目录结构,在 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 访问你部署好的项目啦

标签:vue,RUN,name,app,server,client,mysql,django
From: https://www.cnblogs.com/gwt805/p/18061122

相关文章

  • mysql 导入的文件大小限制
    本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/323MySQL是一种流行的关系型数据库管理系统,支持导入各种类型的数据文件。然而,在导入文件时,可能会遇到文件大小的限制问题。默认情况下,MySQL的导入文件大小限制为1GB。这是通过m......
  • nginx如何配置多个vue项目?
    要在Nginx中配置多个Vue项目,您需要为每个项目设置不同的server块,并为每个项目提供不同的静态资源路径。以下是一个基本的配置示例:http{includemime.types;default_typeapplication/octet-stream;#第一个Vue项目的server配置server{l......
  • nginx部署vue项目
    第一步:打包第二步:地址映射http{server{listen8080;#设置端口号8080server_namelocalhost;#主机域名location/{......
  • mysql 按条件排序:order by 高级用法之case when, if 复杂排序
    转载自:https://blog.csdn.net/weixin_44684303/article/details/124445293实例1原始数据顺序需要的效果:学科按照顺序语文,数学,英语分数倒序演示创建表CREATETABLE`student_score`(`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'主键',`student_i......
  • Mysql数据备份
    一、数据库备份1、备份可分为完全备份、差异备份、增量备份2、常见备份方法:物理备份:冷备份,在数据库关闭状态下进行备份启用二进制日志进行增量备份:二进制日志为用户提供复制、对执行备份点后进行的数据库更改所需的信息进行备份。二、备份操作1、完全备份1、直接打包数......
  • python-Django基础学习笔记
    (由于笔记来自本地的Typora,图片未能上传,文章内容并不完整)路由器配置初始Django-创建/结构/配置settingsURL定义/视图函数路由配置path、re_pathpython-mvenv"名字"#下载Django环境pipinstalldjango==2.2.2-ihttps://pypi.douban.com/simple#激活虚拟环境D:......
  • MYSQL学习笔记4: DML数据操作(增删改)
    DML数据操作(增删改)INSERT插入给指定字段插入数据insertinto表名(字段1,字段2...)values(值1,值2);向itcast的worker表的制定字段中插入一条新数据insertintoworkers(id,workNo,name,gender,age,idCard,entryDate)values(1,'1','hikari39','女',2......
  • MYSQL学习笔记3: DDL表修改
    DDL表修改在表中添加新字段#格式ALTERTABLE表名ADD字段名(长度)[COMMENT注释][约束];#在itcast表中新建一个nickname字段altertableitcastaddnicknamevarchar(20)comment'昵称';修改字段数据类型altertable表名modify字段名新数据类型(长度);修改字段名......
  • MYSQL学习笔记2: 数据类型
    数据类型数值类型TINYINTUNSIGNED无符号的tinyintDOUBLE(4,1)整体长度为4,小数位数为1的DOUBLE数据字符串类型CHAR(10)定长字符串,最多存储10个字符,占用10个字符的内存VARCHAR(10)变长字符串,最多存储10个字符,根据实际字符的长度计算内存空间对于CHAR和VARCHA......
  • MySQL查询优化方案汇总(索引相关)
    索引相关类型隐式转换大坑**字段filed1是varchar类型,且加了索引,如果wherefiled1=123;type可能是all,因为123是数字类型,mysql内部会用函数做隐式转换,用了函数,索引就失效了。**大数据深度分页,用主键selectfield1,field2fromtablelimit100000,10;selectfield1,fiel......