From 4e64ac4ab3235824f080b5ef29515acbb2db7409 Mon Sep 17 00:00:00 2001 From: jmal Date: Mon, 4 Aug 2025 17:24:18 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E9=87=8D=E6=9E=84Dockerfile=E4=BB=A5?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=A4=9A=E9=98=B6=E6=AE=B5=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E4=BB=A5=E4=BC=98=E5=8C=96=E9=95=9C=E5=83=8F=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/nginx-drawio/Dockerfile | 59 ++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/docker/nginx-drawio/Dockerfile b/docker/nginx-drawio/Dockerfile index 9c70f0c..84b0614 100644 --- a/docker/nginx-drawio/Dockerfile +++ b/docker/nginx-drawio/Dockerfile @@ -1,21 +1,46 @@ -FROM nginx:latest +FROM debian:bookworm-slim AS builder +# 1. 安装必要的工具 RUN apt-get update && \ - apt-get install -y unzip wget && \ - mkdir -p /etc/nginx/servers /var/www && \ - wget https://github.com/jgraph/drawio/releases/download/v24.4.10/draw.war -O /var/www/draw.war && \ - wget https://github.com/mozilla/pdf.js/releases/download/v4.3.136/pdfjs-4.3.136-dist.zip -O /var/www/pdfjs.zip && \ - wget https://github.com/jamebal/excalidraw/releases/download/v0.17.3/build.tar.gz -O /var/www/excalidraw.tar.gz && \ - mkdir -p /var/www/excalidraw && \ - unzip /var/www/draw.war -d /var/www/draw && \ - unzip /var/www/pdfjs.zip -d /var/www/pdfjs && \ - tar -xvf /var/www/excalidraw.tar.gz -C /var/www/excalidraw && \ - rm -rf /var/www/pdfjs.zip /var/www/excalidraw.tar.gz /var/www/draw.war /var/www/draw/META-INF /var/www/draw/WEB-INF && \ - apt-get remove -y unzip wget && \ - apt-get autoremove -y && \ - apt-get clean + apt-get install -y wget unzip tar && \ + rm -rf /var/lib/apt/lists/* -COPY docker/nginx-drawio/drawio.conf /etc/nginx/servers/drawio.conf -COPY docker/nginx-drawio/excalidraw.conf /etc/nginx/servers/excalidraw.conf -COPY docker/nginx-drawio/pdfjs.conf /etc/nginx/servers/pdfjs.conf +# 2. 设置工作目录 +WORKDIR /app + +# 3. 下载所有需要的资源 +RUN wget https://github.com/jgraph/drawio/releases/download/v24.4.10/draw.war -O draw.war && \ + wget https://github.com/mozilla/pdf.js/releases/download/v4.3.136/pdfjs-4.3.136-dist.zip -O pdfjs.zip && \ + wget https://github.com/jamebal/excalidraw/releases/download/v0.17.3/build.tar.gz -O excalidraw.tar.gz + +# 4. 创建目录并解压文件到对应目录 +RUN mkdir -p draw pdfjs excalidraw && \ + unzip draw.war -d draw && \ + unzip pdfjs.zip -d pdfjs && \ + tar -xvf excalidraw.tar.gz -C excalidraw + +# 5. 清理不必要的文件 +RUN rm -rf draw/META-INF draw/WEB-INF + + +FROM nginx:1.27-alpine + +# 1. 清理 Nginx 默认的配置和欢迎页面 +RUN rm -f /etc/nginx/conf.d/* /usr/share/nginx/html/* + +# 2. 从构建阶段 (builder) 复制处理好的静态文件到 Nginx 的服务目录 +COPY --from=builder /app/draw /usr/share/nginx/html/draw +COPY --from=builder /app/pdfjs /usr/share/nginx/html/pdfjs +COPY --from=builder /app/excalidraw /usr/share/nginx/html/excalidraw + +# 3. 复制你的自定义 Nginx 配置文件 +COPY docker/nginx-drawio/drawio.conf /etc/nginx/conf.d/drawio.conf +COPY docker/nginx-drawio/excalidraw.conf /etc/nginx/conf.d/excalidraw.conf +COPY docker/nginx-drawio/pdfjs.conf /etc/nginx/conf.d/pdfjs.conf COPY docker/nginx-drawio/mime.types /etc/nginx/mime.types + +# 暴露 80 端口 +EXPOSE 80 + +# 启动 Nginx +CMD ["nginx", "-g", "daemon off;"]