diff --git a/.github/workflows/fe-cd.yml b/.github/workflows/fe-cd.yml index e0c379b6..caed95f2 100644 --- a/.github/workflows/fe-cd.yml +++ b/.github/workflows/fe-cd.yml @@ -26,7 +26,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 10 - name: Set .env file working-directory: ./frontend diff --git a/.github/workflows/fe-ci.yml b/.github/workflows/fe-ci.yml index d9dd454d..7612c4bf 100644 --- a/.github/workflows/fe-ci.yml +++ b/.github/workflows/fe-ci.yml @@ -34,7 +34,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 10 - name: Set .env file run: | diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 00000000..c970aa26 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,28 @@ +FROM node:20-slim AS base +WORKDIR /app +RUN corepack enable pnpm && corepack install -g pnpm@latest-10 + +FROM base AS builder +COPY pnpm-lock.yaml pnpm-workspace.yaml ./ +COPY packages ./packages +COPY configs ./configs +COPY apps ./apps + +RUN pnpm fetch -r +COPY . ./ +RUN pnpm install -r +RUN pnpm build + +RUN pnpm --filter @endolphin/server --prod deploy --legacy ./build/server +COPY ./apps/client/dist ./build/client + +FROM base AS stage +COPY --from=builder /app/package.json ./package.json +COPY --from=builder /app/build/client ./client +COPY --from=builder /app/build/server/dist ./server +COPY --from=builder /app/build/server/package.json ./server/package.json +COPY --from=builder /app/build/server/node_modules ./server/node_modules + +EXPOSE 5173 +ENV NODE_ENV=production +CMD ["pnpm", "start"] \ No newline at end of file diff --git a/frontend/apps/client/package.json b/frontend/apps/client/package.json index de844a68..23818a22 100644 --- a/frontend/apps/client/package.json +++ b/frontend/apps/client/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "pnpm --filter server start", + "dev": "pnpm --filter server dev", "build": "vite build && tsc -b", "test": "vitest", "lint": "eslint .", diff --git a/frontend/apps/server/package.json b/frontend/apps/server/package.json index b19afd39..b692e3f3 100644 --- a/frontend/apps/server/package.json +++ b/frontend/apps/server/package.json @@ -6,7 +6,8 @@ "type": "module", "scripts": { "build": "cross-env NODE_ENV=build tsup", - "start": "cross-env NODE_ENV=start tsup --watch" + "dev": "cross-env NODE_ENV=start tsup --watch", + "start": "node index.js" }, "dependencies": { "express": "^5.1.0" diff --git a/frontend/package.json b/frontend/package.json index 573dc973..998176ef 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,6 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { + "start": "pnpm -r start", "build": "pnpm -r build", "dev": "pnpm -r dev", "test": "pnpm -r test", @@ -11,7 +12,7 @@ "setup-git-hook": "bash src/scripts/git-hook-init-command.sh" }, "engines": { - "pnpm": ">=9.0.0" + "pnpm": ">=10.0.0" }, "devDependencies": { "@changesets/changelog-git": "^0.2.1", diff --git a/frontend/pnpm-workspace.yaml b/frontend/pnpm-workspace.yaml index 9cd4e501..4afc231c 100644 --- a/frontend/pnpm-workspace.yaml +++ b/frontend/pnpm-workspace.yaml @@ -1,4 +1,7 @@ packages: - "apps/*" - "packages/*" - - "configs/*" \ No newline at end of file + - "configs/*" + +syncInjectedDepsAfterScripts: + - build