From daa22f8ff98a40944bbaa863fa492f7b7a30f5c9 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Wed, 5 Nov 2025 13:09:25 +0800 Subject: [PATCH 1/4] =?UTF-8?q?build:=20=E6=B7=BB=E5=8A=A0Dockerfile?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E6=9E=84=E5=BB=BAdocker=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 基于node:22-alpine构建docker镜像 --- .dockerignore | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 41 ++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9f75435 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,58 @@ +# ------------------------ +# Node / Package Manager +# ------------------------ +node_modules +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +.pnpm-store + +# Nuxt build outputs +.output +.nuxt +dist +.cache +.unimport +.h3 +.nitro +**/.nitro + +# Dev tools / OS files +.DS_Store +Thumbs.db + +# Logs +*.log +logs +!.gitkeep + +# Local env files (runtime env should be provided by Docker/K8s) +.env +.env.* +!.env.example + +# Git +.git +.gitignore +.gitattributes + +# Editor / IDE +.vscode +.idea +*.swp +*.swo + +# Tests +coverage +*.lcov + +# Docker +Dockerfile* +docker-compose.yml + +# CI / Local build artifacts +*.tgz +*.zip +*.tar +*.mdx diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f8876aa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,41 @@ + -------- Base image -------- +FROM node:22-alpine AS base +ENV NODE_ENV=production +WORKDIR /app + +# -------- Dependencies layer ------- +FROM base AS deps +WORKDIR /app + +RUN corepack enable + +# Copy package.json and lockfile +COPY package.json pnpm-lock.yaml .npmrc ./ + +# Install dependencies with cache +RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install + +# -------- Build layer ------- +FROM deps AS build +# Copy entire project +COPY . ./ + +ENV NITRO_PRESET=node-server + +# Build the project +RUN pnpm run build + +# ------- Runtime layer ------- +FROM base AS runtime +WORKDIR /app + +# COPY .output folder +COPY --from=build /app/.output ./ + +ENV PORT=3000 +ENV NITRO_PRESET=node-server +ENV HOST=0.0.0.0 + +EXPOSE 3000 + +CMD ["node", "/app/server/index.mjs"] From 2b3bf0f4a98716184a1134937a57f2bdfae4b799 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Wed, 5 Nov 2025 13:09:44 +0800 Subject: [PATCH 2/4] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84README=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # 补全docker部署部分 --- README.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6510b92..aa6e545 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,11 @@ pnpm run dev 项目用到以下环境变量,请自行在项目中配置 -- 'DIRECTUS_URL': 后端Directus服务URL -- 'DIRECTUS_TOKEN': Directus服务的API Token -- 'MEILI_HOST': Meilsearch服务地址 +> [!note] 相关环境变量 +> NUXT_PUBLIC_DIRECTUS_URL: 后端Directus服务URL +> NUXT_PUBLIC_DIRECTUS_TOKEN: 后端Directus服务的API Token +> MEILI_HOST: Meilisearch服务地址 +> MEILI_SEARCH_KEY: MeilisearchKey ## 构建与部署 @@ -81,3 +83,21 @@ pnpm run preview 2. 部署 部署构建后的项目并推送到文件服务器中,具体步骤视服务器配置而定 + +## Dockerfile部署 + +1. 构建Docker镜像 + +在项目根目录执行docker build + +```bash +docker build -t jinshen-website . +``` + +2. 运行docker容器 + +```bash +docker run --name jinshen-website +``` + +网站默认在3000端口开放 From 7dbe85bdc71e6dc41a0d58d8330da4c822e8aaa8 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Wed, 5 Nov 2025 13:24:35 +0800 Subject: [PATCH 3/4] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3README=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index aa6e545..2fa9c87 100644 --- a/README.md +++ b/README.md @@ -58,11 +58,12 @@ pnpm run dev 项目用到以下环境变量,请自行在项目中配置 -> [!note] 相关环境变量 -> NUXT_PUBLIC_DIRECTUS_URL: 后端Directus服务URL -> NUXT_PUBLIC_DIRECTUS_TOKEN: 后端Directus服务的API Token -> MEILI_HOST: Meilisearch服务地址 -> MEILI_SEARCH_KEY: MeilisearchKey +> [!NOTE] 相关环境变量 +> +> - NUXT_PUBLIC_DIRECTUS_URL: 后端Directus服务URL +> - NUXT_PUBLIC_DIRECTUS_TOKEN: 后端Directus服务的API Token +> - MEILI_HOST: Meilisearch服务地址 +> - MEILI_SEARCH_KEY: MeilisearchKey ## 构建与部署 From 7aee68593c84d4036bb5d2909da71c03f2c1b6c6 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Wed, 5 Nov 2025 13:25:38 +0800 Subject: [PATCH 4/4] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3README=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2fa9c87..b2f5b11 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ pnpm run dev 项目用到以下环境变量,请自行在项目中配置 -> [!NOTE] 相关环境变量 +> [!NOTE] > > - NUXT_PUBLIC_DIRECTUS_URL: 后端Directus服务URL > - NUXT_PUBLIC_DIRECTUS_TOKEN: 后端Directus服务的API Token