Commit d96e56ba by zhangxingmin

push

parent 1121340d
......@@ -8,7 +8,7 @@ ENV TZ=Asia/Shanghai
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
# 安装基础依赖(包括 file 工具)
# 安装基础依赖
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libgtk-3-0 \
......@@ -23,40 +23,24 @@ RUN apt-get update && \
curl \
tar \
ca-certificates \
file \
&& rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /app
# 复制项目文件
# 复制项目文件(包括预下载的 HBuilderX)
COPY . .
# 安装 HBuilderX CLI - 使用可靠下载源
# 安装 HBuilderX CLI - 使用预下载文件
RUN mkdir -p /opt/HBuilderX && \
# 尝试直接下载最新版本
curl -L -o /tmp/hbuilderx.tar.gz "https://github.com/dcloudio/HBuilderX/releases/download/v3.8.7.20230901/hbuilderx-linux.tar.gz" || \
# 如果失败,尝试下载特定版本
(echo "主下载源失败,尝试备选源..." && \
curl -L -o /tmp/hbuilderx.tar.gz "https://github.com/dcloudio/HBuilderX/releases/download/3.8.4.20230719/hbuilderx-linux.tar.gz") && \
# 验证文件类型(现在有 file 命令了)
if [ "$(file -b --mime-type /tmp/hbuilderx.tar.gz)" != "application/gzip" ]; then \
echo "下载的文件不是gzip格式,使用本地解压验证..."; \
# 尝试解压验证内容 \
if ! tar -tzf /tmp/hbuilderx.tar.gz >/dev/null 2>&1; then \
echo "文件验证失败,使用官方CDN源..."; \
curl -L -o /tmp/hbuilderx.tar.gz "https://download.dcloud.net.cn/HBuilderX/releases/3.8.7.20230901/hbuilderx-linux.tar.gz"; \
fi \
fi && \
# 解压文件 \
tar -xzvf /tmp/hbuilderx.tar.gz -C /opt/HBuilderX --strip-components=1 && \
rm -f /tmp/hbuilderx.tar.gz && \
# 验证安装 \
tar -xzvf hbuilderx-linux.tar.gz -C /opt/HBuilderX --strip-components=1 && \
rm -f hbuilderx-linux.tar.gz && \
if [ ! -f "/opt/HBuilderX/cli" ]; then \
echo "HBuilderX CLI 安装失败!"; \
exit 1; \
else \
echo "HBuilderX CLI 安装成功"; \
/opt/HBuilderX/cli --version; \
fi
# 设置环境变量
......@@ -70,30 +54,20 @@ ENV UNI_PLATFORM=$BUILD_PLATFORM
RUN hbuilderx build --project /app --platform $BUILD_PLATFORM
# ===================================================
# 第二阶段:运行环境(按平台分发)
# 第二阶段:运行环境
# ===================================================
# H5 运行环境
FROM nginx:1.25.2-alpine AS h5-runtime
# 复制自定义Nginx配置
COPY --from=builder /app/nginx.conf /etc/nginx/conf.d/default.conf
# 复制构建产物
COPY --from=builder /app/unpackage/dist/build/h5 /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 8333
CMD ["nginx", "-g", "daemon off;"]
## Android 运行环境(仅用于保存 APK)
#FROM alpine:3.18 AS android-runtime
#COPY --from=builder /app/unpackage/dist/build/android /app
#VOLUME /output
#CMD ["sh", "-c", "cp /app/*.apk /output"]
#
## iOS 运行环境(仅用于保存 IPA)
#FROM alpine:3.18 AS ios-runtime
#COPY --from=builder /app/unpackage/dist/build/ios /app
#VOLUME /output
#CMD ["sh", "-c", "cp /app/*.ipa /output"]
# 暴露端口
EXPOSE 8333
# ===================================================
# 最终阶段:根据构建参数选择目标平台
# ===================================================
ARG TARGET_PLATFORM=h5
FROM ${TARGET_PLATFORM}-runtime AS final
# 启动命令
CMD ["nginx", "-g", "daemon off;"]
<?xml version='1.0' encoding='utf-8' ?>
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Resource>/HBuilderX/releases/3.8.7.20230901/hbuilderx-linux.tar.gz</Resource>
<RequestId>Njg3ZmI1NDZfYTY0ZTBmMWVfNGQzM181ZWIzMzA0</RequestId>
<TraceId>OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OTc5ODg4ODNhM2YxMjhiZjRjM2YxMGJhMzMwMjU5YTg0Y2I4MDFlOGYwMDcyYmMyMGJhNDg3MjNlZTQ5MWRlZWQ=</TraceId>
</Error>
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