From 3adf14eac95ee1937f04e78e8b29798438677a46 Mon Sep 17 00:00:00 2001 From: louis <869322496@qq.com> Date: Fri, 1 Mar 2024 17:23:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=81=E8=A3=85=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=85=AC=E5=85=B1=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 18 ++++++- Dockerfile copy | 53 ------------------- src/components/business/README.md | 6 ++- .../business/attachment-upload/columns.tsx} | 0 .../business/attachment-upload/index.vue} | 8 +-- src/views/contract/index.vue | 10 ++-- 6 files changed, 31 insertions(+), 64 deletions(-) delete mode 100644 Dockerfile copy rename src/{views/contract/upload-columns.tsx => components/business/attachment-upload/columns.tsx} (100%) rename src/{views/contract/upload-contract.vue => components/business/attachment-upload/index.vue} (96%) diff --git a/Dockerfile b/Dockerfile index 9978e2c..f5a8d30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,23 @@ COPY . ./ # 安装依赖 # 若网络不通,可以使用淘宝源 # RUN pnpm config set registry https://registry.npmmirror.com -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install +# see https://pnpm.io/docker +FROM builder AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM builder AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + + +# mirror acceleration +# RUN npm config set registry https://registry.npmmirror.com +# RUN pnpm config set registry https://registry.npmmirror.com +# RUN npm config rm proxy && npm config rm https-proxy + +FROM builder +COPY --from=prod-deps $PROJECT_DIR/node_modules $PROJECT_DIR/node_modules +COPY --from=build $PROJECT_DIR/dist $PROJECT_DIR/dist # 构建项目 ENV VITE_BASE_URL=/ diff --git a/Dockerfile copy b/Dockerfile copy deleted file mode 100644 index 58a6897..0000000 --- a/Dockerfile copy +++ /dev/null @@ -1,53 +0,0 @@ -# 遇到网络问题可以配置镜像加速:https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6 -# FROM 表示设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。 -# 指定我们的基础镜像是node,latest表示版本是最新, 如果要求空间极致,可以选择lts-alpine -# 使用 as 来为某一阶段命名 -FROM node:20-slim AS base - -ENV PROJECT_DIR=/huaxin-admin \ - DB_HOST=mysql \ - APP_PORT=7001 \ - PNPM_HOME="/pnpm" \ - PATH="$PNPM_HOME:$PATH" - - -RUN corepack enable \ - && yarn global add pm2 - -# WORKDIR指令用于设置Dockerfile中的RUN、CMD和ENTRYPOINT指令执行命令的工作目录(默认为/目录),该指令在Dockerfile文件中可以出现多次, -# 如果使用相对路径则为相对于WORKDIR上一次的值, -# 例如WORKDIR /data,WORKDIR logs,RUN pwd最终输出的当前目录是/data/logs。 -# cd 到 /huaxin-admin -WORKDIR $PROJECT_DIR -COPY ./ $PROJECT_DIR -RUN chmod +x ./wait-for-it.sh - -# set timezone -RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ - && echo 'Asia/Shanghai' > /etc/timezone - -# see https://pnpm.io/docker -FROM base AS prod-deps -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile - -FROM base AS build -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile -RUN pnpm run build - - -# mirror acceleration -# RUN npm config set registry https://registry.npmmirror.com -# RUN pnpm config set registry https://registry.npmmirror.com -# RUN npm config rm proxy && npm config rm https-proxy - -FROM base -COPY --from=prod-deps $PROJECT_DIR/node_modules $PROJECT_DIR/node_modules -COPY --from=build $PROJECT_DIR/dist $PROJECT_DIR/dist - -# EXPOSE port -EXPOSE $APP_PORT - -# 容器启动时执行的命令,类似npm run start -# CMD ["pnpm", "start:prod"] -# CMD ["pm2-runtime", "ecosystem.config.js"] -ENTRYPOINT ./wait-for-it.sh $DB_HOST:$DB_PORT -- pm2-runtime ecosystem.config.js diff --git a/src/components/business/README.md b/src/components/business/README.md index f224398..b673546 100644 --- a/src/components/business/README.md +++ b/src/components/business/README.md @@ -1,5 +1,7 @@ ### 业务组件(目录说明) -1.AttachmentManage不同的业务调用该组件需要传入该业务数据link的文件ids,需要传入unlink文件的方法,只是解除关联,文件实际还在服务器上没有删除,如果想要物理删除文件,需要到存储管理中去删除。 - +1.AttachmentManage +不同的业务调用该组件需要传入该业务数据link的文件ids,需要传入unlink文件的方法,只是解除关联,文件实际还在服务器上没有删除,如果想要物理删除文件,需要到存储管理中去删除。 +2.AttachmentUpload +不同的业务去上传附件。需要传入一个afterUploadCallback去接收上传到storage的文件ids,并自己关联业务数据 #### 与业务强耦合的组件可以放这里 diff --git a/src/views/contract/upload-columns.tsx b/src/components/business/attachment-upload/columns.tsx similarity index 100% rename from src/views/contract/upload-columns.tsx rename to src/components/business/attachment-upload/columns.tsx diff --git a/src/views/contract/upload-contract.vue b/src/components/business/attachment-upload/index.vue similarity index 96% rename from src/views/contract/upload-contract.vue rename to src/components/business/attachment-upload/index.vue index ce69a48..2306ac2 100644 --- a/src/views/contract/upload-contract.vue +++ b/src/components/business/attachment-upload/index.vue @@ -12,16 +12,19 @@ - +