diff --git a/Dockerfile b/Dockerfile index 94448f9..3425557 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,7 @@ RUN bun install COPY . . # Build the Nuxt application +ENV NITRO_PRESET=bun RUN bun run build # Stage 2: Create the production image diff --git a/Dockerfile.node b/Dockerfile.node new file mode 100644 index 0000000..d29be64 --- /dev/null +++ b/Dockerfile.node @@ -0,0 +1,33 @@ +# Stage 1: Build the application +FROM node:20 as builder +WORKDIR /app + +# Copy dependency definition files +COPY package.json ./ +COPY package-lock.json ./ + +# Install dependencies +RUN npm install + +# Copy the rest of the application code +COPY . . + +# Build the Nuxt application +RUN npm run build + +# Stage 2: Create the production image +FROM node:20-slim as runner +WORKDIR /app + +# Copy the built output from the builder stage +COPY --from=builder /app/.output ./.output + +# Set environment variables for the Nuxt server +ENV HOST=0.0.0.0 +ENV PORT=3000 + +# Expose the port the app runs on +EXPOSE 3000 + +# The command to run the application +CMD ["node", ".output/server/index.mjs"] \ No newline at end of file diff --git a/app/components.d.ts b/app/components.d.ts index 8fd9ec3..64f85db 100644 --- a/app/components.d.ts +++ b/app/components.d.ts @@ -14,21 +14,16 @@ declare module 'vue' { export interface GlobalComponents { NAlert: typeof import('naive-ui')['NAlert'] NAvatar: typeof import('naive-ui')['NAvatar'] - NBtn: typeof import('naive-ui')['NBtn'] NButton: typeof import('naive-ui')['NButton'] NCard: typeof import('naive-ui')['NCard'] - NCardSection: typeof import('naive-ui')['NCardSection'] NCarousel: typeof import('naive-ui')['NCarousel'] NCarouselItem: typeof import('naive-ui')['NCarouselItem'] NCheckbox: typeof import('naive-ui')['NCheckbox'] - NChip: typeof import('naive-ui')['NChip'] NCode: typeof import('naive-ui')['NCode'] NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] NConfigProvider: typeof import('naive-ui')['NConfigProvider'] NDatePicker: typeof import('naive-ui')['NDatePicker'] - NDialog: typeof import('naive-ui')['NDialog'] NDialogProvider: typeof import('naive-ui')['NDialogProvider'] - NDivider: typeof import('naive-ui')['NDivider'] NDrawer: typeof import('naive-ui')['NDrawer'] NDrawerContent: typeof import('naive-ui')['NDrawerContent'] NDropdown: typeof import('naive-ui')['NDropdown'] @@ -38,8 +33,6 @@ declare module 'vue' { NGlobalStyle: typeof import('naive-ui')['NGlobalStyle'] NIcon: typeof import('naive-ui')['NIcon'] NImage: typeof import('naive-ui')['NImage'] - NImagePreview: typeof import('naive-ui')['NImagePreview'] - NImg: typeof import('naive-ui')['NImg'] NInfiniteScroll: typeof import('naive-ui')['NInfiniteScroll'] NInput: typeof import('naive-ui')['NInput'] NList: typeof import('naive-ui')['NList'] @@ -58,11 +51,8 @@ declare module 'vue' { NSpace: typeof import('naive-ui')['NSpace'] NSpin: typeof import('naive-ui')['NSpin'] NTab: typeof import('naive-ui')['NTab'] - NTabPane: typeof import('naive-ui')['NTabPane'] NTabs: typeof import('naive-ui')['NTabs'] NTag: typeof import('naive-ui')['NTag'] - NTextarea: typeof import('naive-ui')['NTextarea'] - NThemeEditor: typeof import('naive-ui')['NThemeEditor'] NTooltip: typeof import('naive-ui')['NTooltip'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] @@ -73,21 +63,16 @@ declare module 'vue' { declare global { const NAlert: typeof import('naive-ui')['NAlert'] const NAvatar: typeof import('naive-ui')['NAvatar'] - const NBtn: typeof import('naive-ui')['NBtn'] const NButton: typeof import('naive-ui')['NButton'] const NCard: typeof import('naive-ui')['NCard'] - const NCardSection: typeof import('naive-ui')['NCardSection'] const NCarousel: typeof import('naive-ui')['NCarousel'] const NCarouselItem: typeof import('naive-ui')['NCarouselItem'] const NCheckbox: typeof import('naive-ui')['NCheckbox'] - const NChip: typeof import('naive-ui')['NChip'] const NCode: typeof import('naive-ui')['NCode'] const NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] const NConfigProvider: typeof import('naive-ui')['NConfigProvider'] const NDatePicker: typeof import('naive-ui')['NDatePicker'] - const NDialog: typeof import('naive-ui')['NDialog'] const NDialogProvider: typeof import('naive-ui')['NDialogProvider'] - const NDivider: typeof import('naive-ui')['NDivider'] const NDrawer: typeof import('naive-ui')['NDrawer'] const NDrawerContent: typeof import('naive-ui')['NDrawerContent'] const NDropdown: typeof import('naive-ui')['NDropdown'] @@ -97,8 +82,6 @@ declare global { const NGlobalStyle: typeof import('naive-ui')['NGlobalStyle'] const NIcon: typeof import('naive-ui')['NIcon'] const NImage: typeof import('naive-ui')['NImage'] - const NImagePreview: typeof import('naive-ui')['NImagePreview'] - const NImg: typeof import('naive-ui')['NImg'] const NInfiniteScroll: typeof import('naive-ui')['NInfiniteScroll'] const NInput: typeof import('naive-ui')['NInput'] const NList: typeof import('naive-ui')['NList'] @@ -117,11 +100,8 @@ declare global { const NSpace: typeof import('naive-ui')['NSpace'] const NSpin: typeof import('naive-ui')['NSpin'] const NTab: typeof import('naive-ui')['NTab'] - const NTabPane: typeof import('naive-ui')['NTabPane'] const NTabs: typeof import('naive-ui')['NTabs'] const NTag: typeof import('naive-ui')['NTag'] - const NTextarea: typeof import('naive-ui')['NTextarea'] - const NThemeEditor: typeof import('naive-ui')['NThemeEditor'] const NTooltip: typeof import('naive-ui')['NTooltip'] const RouterLink: typeof import('vue-router')['RouterLink'] const RouterView: typeof import('vue-router')['RouterView']