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;"]