Docker构建及部署Python django-vue3-admin项目:前后端Dockerfile脚本示例及mysql redis celery基础镜像
以下是针对Django项目中的前后端分离Dockerfile脚本的简化示例,包括了Django和Vue前端的构建过程,以及MySQL数据库的配置。
Django Dockerfile:
# 基于Python官方镜像
FROM python:3.8-slim
# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# 创建工作目录
WORKDIR /app
# 安装依赖
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt
# 拷贝项目
COPY . /app/
# 运行数据库迁移和收集静态文件命令
CMD ["python", "manage.py", "makemigrations"]
CMD ["python", "manage.py", "migrate"]
CMD ["python", "manage.py", "collectstatic", "--no-input"]
# 运行Django服务
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Vue Dockerfile:
# 基于Node官方镜像
FROM node:lts-alpine as build-stage
# 设置工作目录
WORKDIR /app
# 拷贝前端项目文件
COPY . .
# 安装依赖
RUN npm install
# 构建前端项目
RUN npm run build
# 生产环境镜像,基于轻量级Nginx镜像
FROM nginx:stable-alpine as production-stage
# 从构建阶段复制构建结果到Nginx目录
COPY --from=build-stage /app/dist /usr/share/nginx/html
# 暴露端口
EXPOSE 80
# 启动Nginx,并且Nginx会处理dist目录下的静态文件
CMD ["nginx", "-g", "daemon off;"]
MySQL Dockerfile:
# 基于MySQL官方镜像
FROM mysql:5.7
# 设置环境变量
ENV MYSQL_DATABASE=django_vue3_admin
ENV MYSQL_USER=django
ENV MYSQL_PASSWORD=password
ENV MYSQL_ROOT_PASSWORD=root_password
# 容器启动时执行的命令
CMD ["mysqld"]
这些Dockerfile脚本提供了构建Django和Vue前端的方法,以及如何在Docker容器中运行MySQL数据库的示例。这些脚本可以根据实际项目需求进行调整和扩展。
评论已关闭