This commit is contained in:
2026-09-12 01:39:39 +08:00
parent 9912bdbed3
commit ff0ec5c15e
+11 -10
View File
@@ -8,10 +8,10 @@
# 通过 --build-arg 动态注入以下变量,便于在 CI 中复用同一份 Dockerfile:
# VAR_BASE_IMAGE 基础镜像(如 python:3.12-slim、自定义的带 esxi 用户的镜像)
# VAR_PYTHON_PREFIX Python 安装前缀(依赖安装位置)
# VAR_JARFILE_PATH 项目源码目录(相对构建上下文)
# VAR_PYFILE_PATH 项目源码目录(相对构建上下文)
# VAR_PROFILES 应用 profile(dev / prod ...)
# VAR_PORT 应用监听端口
# VAR_JARFILE 启动入口文件名(不含 .py)
# VAR_PYFILE 启动入口文件名(不含 .py)
# ============================================================
# ------------------------------------------------------------
@@ -62,6 +62,7 @@ RUN yum install -y yum-utils net-tools && \
openssl-devel bzip2-devel libffi-devel \
mariadb-devel pkgconf-pkg-config && \
yum clean all && rm -rf /var/cache/yum
#RUN --mount=type=cache,target=/var/cache/dnf,sharing=locked,id=dnf-cache \
# dnf install -y yum-utils net-tools && \
# dnf install -y gcc gcc-c++ make cmake \
@@ -81,9 +82,9 @@ RUN pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple && \
# 只拷贝 requirements.txt 而不是整个项目,
# 这样源码变化但 requirements 未变时可以复用 pip install 层缓存
# ------------------------------------------------------------
ARG VAR_JARFILE_PATH
ARG VAR_PYFILE_PATH
WORKDIR /opt/apps
COPY ${VAR_JARFILE_PATH}/requirements.txt ./
COPY ${VAR_PYFILE_PATH}/requirements.txt ./
# ------------------------------------------------------------
# 将依赖安装到 Python 的 prefix 下
@@ -119,14 +120,14 @@ ENV PYTHONUNBUFFERED=1 \
# VAR_PYTHON_PREFIX Python 前缀(必须与 builder 保持一致)
# VAR_PROFILES 配置 profile(dev / prod)
# VAR_PORT 应用监听端口
# VAR_JARFILE 启动入口文件名(不含 .py)
# VAR_JARFILE_PATH 项目源码目录
# VAR_PYFILE 启动入口文件名(不含 .py)
# VAR_PYFILE_PATH 项目源码目录
# ------------------------------------------------------------
ARG VAR_PYTHON_PREFIX=/usr/local/python3.12.8
ARG VAR_PROFILES
ARG VAR_PORT
ARG VAR_JARFILE
ARG VAR_JARFILE_PATH
ARG VAR_PYFILE
ARG VAR_PYFILE_PATH
# ------------------------------------------------------------
# 将 ARG 转成 ENV,运行期可通过环境变量读取
@@ -135,7 +136,7 @@ ARG VAR_JARFILE_PATH
# PROFILES 应用读取的 profile
# ------------------------------------------------------------
ENV PORT=${VAR_PORT} \
PYFILE=${VAR_JARFILE} \
PYFILE=${VAR_PYFILE} \
PROFILES=${VAR_PROFILES}
# ------------------------------------------------------------
@@ -167,7 +168,7 @@ WORKDIR /opt/apps
# 拷贝项目源码
# 建议配合 .dockerignore 排除 .git、__pycache__、本地虚拟环境等
# ------------------------------------------------------------
COPY ${VAR_JARFILE_PATH}/ ./
COPY ${VAR_PYFILE_PATH}/ ./
# ------------------------------------------------------------
# 一次性修正属主: