更新Dockerfile

This commit is contained in:
2026-09-11 14:35:23 +08:00
parent 3573225d8a
commit 787fd670f1
2 changed files with 55 additions and 42 deletions
+55 -40
View File
@@ -1,60 +1,75 @@
# 基础镜像地址 # ============================================================
# 基础镜像参数
# ============================================================
ARG VAR_BASE_IMAGE ARG VAR_BASE_IMAGE
# 基础镜像 # ============================================================
FROM ${VAR_BASE_IMAGE} # 阶段一:builder —— 负责编译依赖
# 镜像作者 # ============================================================
LABEL MAINTAINER="djangoadmin@163.com" FROM ${VAR_BASE_IMAGE} AS builder
# 设置 python 环境变量 LABEL MAINTAINER="djangoadmin@126.com"
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
# 环境变量参数 ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=1 \
PIP_DISABLE_PIP_VERSION_CHECK=1
# 安装编译所需工具链
RUN yum install -y yum-utils net-tools && \
yum install -y gcc gcc-c++ make cmake \
openssl-devel bzip2-devel libffi-devel mysql-devel && \
yum clean all && rm -rf /var/cache/yum
# 配置 pip 国内镜像源
RUN pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple && \
pip3 config set install.trusted-host mirrors.aliyun.com && \
python3 -m pip install --upgrade pip setuptools wheel
# 拷贝依赖清单
ARG VAR_PYFILE_PATH
WORKDIR /opt/apps
COPY ${VAR_PYFILE_PATH}/requirements.txt ./
# 将依赖安装到 /install 前缀,便于后续拷贝
RUN pip3 install --prefix=/install -r requirements.txt && \
pip3 install --prefix=/install uwsgi
# ============================================================
# 阶段二:runtime —— 只保留运行时内容
# ============================================================
FROM ${VAR_BASE_IMAGE} AS runtime
LABEL MAINTAINER="djangoadmin@126.com"
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
# 运行期参数
ARG VAR_PROFILES ARG VAR_PROFILES
# 端口参数
ARG VAR_PORT ARG VAR_PORT
# 文件参数
ARG VAR_PYFILE ARG VAR_PYFILE
# 文件地址
ARG VAR_PYFILE_PATH ARG VAR_PYFILE_PATH
# 设置端口 ENV PORT=${VAR_PORT} \
ENV PORT=${VAR_PORT} PYFILE=${VAR_PYFILE} \
# 设置文件包名 PROFILES=${VAR_PROFILES}
ENV PYFILE=${VAR_PYFILE}
# 设置环境变量
ENV PROFILES=${VAR_PROFILES}
# 安装必要的软件包 # 只安装运行期需要的动态库(不再需要 gcc/make/cmake 等)
RUN yum install -y yum-utils net-tools && \ RUN yum install -y net-tools openssl-devel bzip2-devel libffi-devel mysql-devel && \
yum install -y gcc gcc-c++ make cmake openssl-devel bzip2-devel libffi-devel mysql-devel yum clean all && rm -rf /var/cache/yum
# 更新pip # 从 builder 阶段拷贝已编译好的 Python 依赖
RUN pip3 install -U pip COPY --from=builder /install /usr/local
# 设置国内镜像源
RUN pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip3 config set install.trusted-host mirrors.aliyun.com
# 升级pip版本
RUN python3 -m pip install --upgrade pip
# 安装工具
RUN pip3 install --upgrade setuptools wheel
RUN pip3 install ez_setup
# 创建工作区 # 创建工作区
RUN mkdir -p /opt/apps
# 设置工作区
WORKDIR /opt/apps WORKDIR /opt/apps
# 拷贝文件 # 拷贝项目源码
COPY ${VAR_PYFILE_PATH} ./ COPY ${VAR_PYFILE_PATH}/ ./
# 安装依赖
RUN pip install -r requirements.txt
RUN pip install uwsgi
# 暴露端口 # 暴露端口
EXPOSE ${PORT} EXPOSE ${PORT}
# 执行启动项目 # 启动
CMD ["sh", "-c", "python3 ${PYFILE}.py runserver 0.0.0.0:${PORT} --noreload"] CMD ["sh", "-c", "python3 ${PYFILE}.py runserver 0.0.0.0:${PORT} --noreload"]
-2
View File
@@ -68,8 +68,6 @@ DjangoAdmin 数据中台解决方案是一套面向企业级应用场景的一
## 📁 项目结构 ## 📁 项目结构
## 📁 项目结构
``` ```
├── application/ # Django 后端应用目录 ├── application/ # Django 后端应用目录
│ ├── generator/ # 代码生成器 Web 端 │ ├── generator/ # 代码生成器 Web 端