From 6ce492a058b00991a1d062c372c99397938bb9e3 Mon Sep 17 00:00:00 2001 From: ditiqi Date: Sun, 2 Mar 2025 16:45:30 +0800 Subject: [PATCH] add --- Dockerfile | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index e36b24a..0c652f4 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # 基础镜像 -FROM node:20-alpine as base +FROM node:18.17-alpine as base # 更改 apk 镜像源为阿里云 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories # 设置 npm 镜像源 @@ -17,24 +17,30 @@ COPY pnpm-workspace.yaml ./ # 首先复制 package.json, package-lock.json 和 pnpm-lock.yaml 文件 COPY package*.json pnpm-lock.yaml* ./ -COPY tsconfig.json . +COPY tsconfig.base.json . # 利用 Docker 缓存机制,如果依赖没有改变则不会重新执行 pnpm install #100-500 5-40 FROM base As server-build WORKDIR /app COPY packages/common /app/packages/common +COPY packages/tus /app/packages/tus COPY apps/server /app/apps/server -RUN pnpm install --filter server +RUN pnpm config set registry https://registry.npmmirror.com/ RUN pnpm install --filter common +RUN pnpm install --filter tus +RUN pnpm install --filter server RUN pnpm --filter common generate && pnpm --filter common build:cjs +RUN pnpm --filter tus build RUN pnpm --filter server build FROM base As server-prod-dep WORKDIR /app COPY packages/common /app/packages/common +COPY packages/tus /app/packages/tus COPY apps/server /app/apps/server RUN pnpm install --filter common --prod +RUN pnpm install --filter tus --prod RUN pnpm install --filter server --prod @@ -43,6 +49,7 @@ FROM server-prod-dep as server WORKDIR /app ENV NODE_ENV production COPY --from=server-build /app/packages/common/dist ./packages/common/dist +COPY --from=server-build /app/packages/tus/dist ./packages/tus/dist COPY --from=server-build /app/apps/server/dist ./apps/server/dist COPY apps/server/entrypoint.sh ./apps/server/entrypoint.sh @@ -85,7 +92,10 @@ EXPOSE 80 CMD ["/usr/bin/entrypoint.sh"] +# 使用 Nginx 的 Alpine 版本作为基础镜像 FROM nginx:stable-alpine as nginx + +# 替换 Alpine 的软件源为阿里云镜像 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories # 设置工作目录 @@ -94,9 +104,11 @@ WORKDIR /usr/share/nginx/html # 设置环境变量 ENV NODE_ENV production -# 安装 envsubst 以支持环境变量替换 -RUN apk add --no-cache gettext +# 安装 envsubst 和 inotify-tools +RUN apk add --no-cache gettext inotify-tools + +# 创建 /data/uploads 目录 +RUN mkdir -p /data/uploads # 暴露 80 端口 -EXPOSE 80 - +EXPOSE 80 \ No newline at end of file