From ff2f21f1455f642d596fe488935b5553a3eaade7 Mon Sep 17 00:00:00 2001 From: estel <690930@qq.com> Date: Tue, 29 Jul 2025 13:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 70 ++++++++++++++++---------------- app/components/auth/login.vue | 12 +++--- app/components/auth/register.vue | 12 +++--- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/Dockerfile b/Dockerfile index edb5200..12f152b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,37 +1,35 @@ -# ------------- 依赖缓存阶段 ------------- - FROM node:22.16-alpine AS base - # 国内镜像 - RUN npm config set registry https://registry.npmmirror.com - - # 置顶安装 pnpm@10.13.1 - RUN npm install -g pnpm@10.13.1 - - WORKDIR /app - - # 1️⃣ 先把锁文件拷进来,让这一层可以 cache - COPY package.json pnpm-lock.yaml .npmrc ./ - - # 2️⃣ 再执行安装 - RUN pnpm install --frozen-lockfile - - # 3️⃣ 再拷剩余源码 - COPY . . - RUN chmod +x patch-ui-pro.zsh && ./patch-ui-pro.zsh - - # ------------- 构建阶段 ------------- - FROM base AS builder - RUN pnpm build - - # ------------- 运行阶段 ------------- - FROM node:22.16-alpine AS production - - WORKDIR /app - - # 拷贝构建产物 - COPY --from=builder /app/.output ./.output - - EXPOSE 3000 - ENV NODE_ENV=production HOST=0.0.0.0 PORT=3000 - CMD ["node", ".output/server/index.mjs"] - \ No newline at end of file +FROM node:22-alpine AS build +WORKDIR /app + +RUN npm config set registry https://registry.npmmirror.com +RUN corepack enable + +# Copy package.json and your lockfile, here we add pnpm-lock.yaml for illustration +COPY package.json pnpm-lock.yaml .npmrc ./ + +# Install dependencies +RUN pnpm i + +# Copy the entire project +COPY . ./ + +# Build the project +RUN chmod +x patch-ui-pro.zsh && ./patch-ui-pro.zsh +RUN pnpm run build + +# Build Stage 2 + +FROM node:22-alpine +WORKDIR /app + +# Only `.output` folder is needed from the build stage +COPY --from=build /app/.output/ ./ + +# Change the port and host +ENV PORT=3000 +ENV HOST=0.0.0.0 + +EXPOSE 3000 + +CMD ["node", "/app/server/index.mjs"] \ No newline at end of file diff --git a/app/components/auth/login.vue b/app/components/auth/login.vue index 8a42515..d1ba240 100644 --- a/app/components/auth/login.vue +++ b/app/components/auth/login.vue @@ -3,25 +3,25 @@ const providers = ref([ { label: 'Google', icon: 'simple-icons-google', - color: 'neutral', - variant: 'subtle' + color: 'neutral' as const, + variant: 'subtle' as const }, { label: 'GitHub', icon: 'simple-icons-github', - color: 'neutral', - variant: 'subtle' + color: 'neutral' as const, + variant: 'subtle' as const } ]) const fields = ref([ { name: 'email', - type: 'text', + type: 'text' as const, label: 'Email' }, { name: 'password', - type: 'password', + type: 'password' as const, label: 'Password' } ]) diff --git a/app/components/auth/register.vue b/app/components/auth/register.vue index 3dd506f..8db3623 100644 --- a/app/components/auth/register.vue +++ b/app/components/auth/register.vue @@ -3,25 +3,25 @@ const providers = ref([ { label: 'Google', icon: 'simple-icons-google', - color: 'neutral', - variant: 'subtle' + color: 'neutral' as const, + variant: 'subtle' as const }, { label: 'GitHub', icon: 'simple-icons-github', - color: 'neutral', - variant: 'subtle' + color: 'neutral' as const, + variant: 'subtle' as const } ]) const fields = ref([ { name: 'email', - type: 'text', + type: 'text' as const, label: 'Email' }, { name: 'password', - type: 'password', + type: 'password' as const, label: 'Password' } ])