feat: Implement multi-stage Dockerfile for robust Nuxt build
This commit is contained in:
22
Dockerfile
22
Dockerfile
@@ -1,4 +1,5 @@
|
|||||||
FROM node:24-alpine
|
# Stage 1: Builder
|
||||||
|
FROM node:24-alpine AS builder
|
||||||
|
|
||||||
# Install dumb-init, Python, and build tools for native builds
|
# Install dumb-init, Python, and build tools for native builds
|
||||||
RUN apk add --no-cache dumb-init python3 build-base
|
RUN apk add --no-cache dumb-init python3 build-base
|
||||||
@@ -9,8 +10,8 @@ WORKDIR /app
|
|||||||
# Copy package files
|
# Copy package files
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
# Install dependencies
|
# Install all dependencies (including dev dependencies for building)
|
||||||
RUN npm install --production
|
RUN npm install
|
||||||
|
|
||||||
# Copy application code
|
# Copy application code
|
||||||
COPY . .
|
COPY . .
|
||||||
@@ -18,6 +19,21 @@ COPY . .
|
|||||||
# Build the application
|
# Build the application
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
|
# Stage 2: Runner
|
||||||
|
FROM node:24-alpine
|
||||||
|
|
||||||
|
# Install dumb-init for signal handling
|
||||||
|
RUN apk add --no-cache dumb-init
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy only production dependencies from builder stage
|
||||||
|
COPY --from=builder /app/node_modules ./node_modules
|
||||||
|
|
||||||
|
# Copy the built application from builder stage
|
||||||
|
COPY --from=builder /app/.output ./.output
|
||||||
|
|
||||||
# Create data directory and database file for SQLite
|
# Create data directory and database file for SQLite
|
||||||
RUN mkdir -p /app/data && touch /app/data/sermons.db
|
RUN mkdir -p /app/data && touch /app/data/sermons.db
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ export default defineNuxtConfig({
|
|||||||
nitro: {
|
nitro: {
|
||||||
experimental: {
|
experimental: {
|
||||||
wasm: true
|
wasm: true
|
||||||
},
|
|
||||||
externals: {
|
|
||||||
external: ['tailwindcss']
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
vite: {
|
vite: {
|
||||||
@@ -30,12 +27,6 @@ export default defineNuxtConfig({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
postcss: {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
app: {
|
app: {
|
||||||
head: {
|
head: {
|
||||||
link: [
|
link: [
|
||||||
|
|||||||
Reference in New Issue
Block a user