Commit 7a22ff88 by zhangxingmin

push

parent e56ae81b
# 第一阶段:构建环境
FROM node:16.20.2-bullseye-slim AS builder
# 第一阶段:基础准备(不包含大文件)
FROM node:16.20.2-bullseye-slim AS base
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 使用国内镜像源替换默认源
# 使用国内镜像源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
......@@ -20,26 +20,43 @@ RUN apt-get update && \
# 设置工作目录
WORKDIR /app
# 复制项目文件
COPY . .
# 关键修改:直接复制已解压的 HBuilderX 目录
COPY ./HBuilderX /opt/HBuilderX
# 检查并设置权限
RUN chmod +x /opt/HBuilderX/cli && \
if [ ! -f "/opt/HBuilderX/cli" ]; then \
echo "HBuilderX CLI 安装失败!"; \
exit 1; \
# ===================================================
# 第二阶段:安装 HBuilderX(单独阶段)
FROM base AS hbuilderx-installer
# 通过构建参数传递 HBuilderX 路径
ARG HBUILDERX_PATH
# 直接从宿主机复制 HBuilderX(避免通过构建上下文)
COPY --from=host ${HBUILDERX_PATH} /opt/HBuilderX
# 验证安装
RUN echo "### 验证 HBuilderX 安装 ###" && \
ls -la /opt/HBuilderX && \
if [ -f "/opt/HBuilderX/cli" ]; then \
echo "HBuilderX CLI 存在" && \
chmod +x /opt/HBuilderX/cli && \
echo "版本信息: " && /opt/HBuilderX/cli --version; \
else \
echo "HBuilderX CLI 安装成功"; \
/opt/HBuilderX/cli --version; \
echo "错误:HBuilderX CLI 不存在!" && \
find /opt -name cli && \
exit 1; \
fi
# ===================================================
# 第三阶段:项目构建
FROM base AS builder
# 复制 HBuilderX 安装结果
COPY --from=hbuilderx-installer /opt/HBuilderX /opt/HBuilderX
# 设置环境变量
ENV PATH="/opt/HBuilderX:${PATH}"
# 安装项目依赖 - 使用国内npm源
# 复制项目文件(不包括 HBuilderX)
COPY . .
# 使用国内 npm 源安装依赖
RUN npm config set registry https://registry.npmmirror.com && \
npm install
......@@ -48,13 +65,11 @@ ARG BUILD_PLATFORM=h5
ENV UNI_PLATFORM=$BUILD_PLATFORM
# 执行构建
RUN cli build --project /app --platform $BUILD_PLATFORM
RUN echo "### 开始项目构建 ###" && \
cli build --project /app --platform $BUILD_PLATFORM
# ===================================================
# 第二阶段:运行环境
# ===================================================
# H5 运行环境
# 第四阶段:运行环境
FROM nginx:1.25.2-alpine AS h5-runtime
# 复制自定义Nginx配置
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment