使用docker-compose搭建django+vue工程

作者:问题终结者2024.01.17 19:44浏览量:20

简介:本文将介绍如何使用docker-compose来搭建一个基于Django和Vue.js的工程。我们将通过Docker来构建一个完整的开发环境,并介绍如何将Django和Vue.js集成在一起。

在开始之前,你需要先安装Docker和docker-compose。如果你还没有安装,请访问Docker官方网站下载并按照说明进行安装。
首先,我们需要创建一个新的目录来存储我们的项目文件。在终端中运行以下命令:

  1. mkdir django-vue-docker
  2. cd django-vue-docker

接下来,我们创建一个新的docker-compose.yml文件,并定义我们的服务。在这个例子中,我们将创建一个名为web的服务,用于运行Django应用程序和Vue.js前端。
在docker-compose.yml文件中输入以下内容:

  1. version: '3'
  2. services:
  3. web:
  4. build: .
  5. ports:
  6. - 8000:8000
  7. volumes:
  8. - .:/app
  9. command: python manage.py runserver 0.0.0.0:8000

这个文件告诉Docker要构建一个名为web的服务,它将使用当前目录下的Dockerfile构建镜像,并将容器端口映射到主机的8000端口。我们还将当前目录挂载到容器的/app目录下,以便我们可以轻松地访问项目文件。最后,我们使用命令行命令启动Django开发服务器。
接下来,我们需要创建一个Dockerfile来定义如何构建我们的镜像。在项目根目录下创建一个名为Dockerfile的文件,并输入以下内容:

  1. # 使用官方的Python 3.8镜像作为基础镜像
  2. FROM python:3.8-slim-buster
  3. # 将工作目录设置为/app
  4. WORKDIR /app
  5. # 将当前目录的内容复制到容器的/app目录下
  6. COPY . /app
  7. # 安装requirements.txt文件中指定的Python依赖项
  8. RUN pip install --no-cache-dir -r requirements.txt
  9. # 暴露端口8000给容器外部
  10. EXPOSE 8000

这个Dockerfile告诉Docker使用官方的Python 3.8镜像作为基础镜像,并将工作目录设置为/app。然后,它将当前目录的内容复制到容器的/app目录下,并安装requirements.txt文件中指定的Python依赖项。最后,它暴露容器的8000端口给外部世界。
现在,我们需要创建一个requirements.txt文件来列出我们的Python依赖项。在项目根目录下创建一个名为requirements.txt的文件,并输入以下内容:
makefile dj-database-url==0.5.0 Django==3.2.* psycopg2==2.8.* (如果你使用PostgreSQL数据库) pytz==2021.* (Python的内置库) whitenoise==5.* (用于静态文件的部署) gunicorn==20.* (用于部署Django应用程序)根据你的数据库选择添加相应的依赖项。例如,如果你使用PostgreSQL数据库,你需要添加psycopg2库。如果你的项目需要其他依赖项,请将它们添加到这个文件中。
现在我们已经设置好了docker-compose和Dockerfile文件,接下来我们需要创建Django和Vue.js应用程序。我们将使用Django来处理后端逻辑,使用Vue.js来处理前端逻辑。在这个例子中,我们将使用Vue CLI和Django的内置开发服务器来运行我们的应用程序。在终端中运行以下命令来创建Django项目:
bash docker-compose run web django-admin startproject composeexample .这将在当前目录下创建一个名为composeexample的Django项目。现在我们可以在终端中运行以下命令来启动我们的应用程序:
``bash docker-compose up -d django-vue-docker_web_1 up -d django-vue-docker_web_1 starting ... done Use commanddocker-compose exec django-vue-docker_web_1 python manage.py migrateto migrate the database. Use commanddocker-compose exec django-vue-docker_web_1 python manage.py createsuperuserto create a superuser. Use commanddocker-compose exec django-vue-docker_web_1 python manage.py runserver 0.0.0.0:8000to start the Django development server. Use commanddocker exec -it django-vue-docker_web_1 npm installto install the dependencies of the Vue.js frontend. Use commanddocker exec -it django-vue-docker_web_1