As you might see in the screenshot, everytime i try to run “docker-compose up –build” to build nuxt it takes almost forever with no updates on the build progress.
it just says “[nitro] ✔ You can preview this build using node .output/server/index.mjs “
all the config and related docker files:
import { defineNuxtConfig } from "nuxt/config";
export default defineNuxtConfig({
devtools: { enabled: true },
ssr: true,
experimental: {
payloadExtraction: false,
},
modules: [
"@sidebase/nuxt-auth",
"nuxt-icon",
"@nuxt/content",
"@pinia/nuxt",
"nuxt-security",
"@nuxt/image",
],
content: {
documentDriven: true,
},
auth: {
provider: {
type: "authjs",
},
pages: {
login: "/sign-up",
},
globalAppMiddleware: true,
},
runtimeConfig: {
// private data
},
buildModules: ["@nuxtjs/vuetify", "@nuxt/typescript-build"],
vuetify: {},
css: [
"~/assets/css/main.css",
"vuetify/lib/styles/main.sass",
"~/assets/css/fonts.css",
],
build: {
transpile: ["vuetify"],
loaders: {
sass: {
implementation: require("sass"),
},
},
},
postcss: {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
},
plugins: ["security-node", "anti-trojan-source"],
extends: [
"plugin:security-node/recommended",
"plugin:anti-trojan-source/recommended",
],
routeRules: {
"/pricing/tier-plans/pro": {
security: {
headers: {
crossOriginEmbedderPolicy: "unsafe-none",
crossOriginResourcePolicy: "cross-origin",
},
},
},
"/pricing/tier-plans/premium": {
security: {
headers: {
crossOriginEmbedderPolicy: "unsafe-none",
crossOriginResourcePolicy: "cross-origin",
},
},
},
},
});
what am i doing wrong exactly?
docker file:
# Build stage
FROM node:20 AS build
WORKDIR /app
# Install pnpm
RUN npm install -g pnpm
# Copy package.json and pnpm-lock.yaml (if it exists)
COPY front/package*.json ./
COPY front/pnpm-lock.yaml* ./
# Install dependencies
RUN if [ -f pnpm-lock.yaml ]; then pnpm install --frozen-lockfile; else pnpm install; fi
# Copy the rest of the application code
COPY front/ ./
# Set NODE_OPTIONS to increase memory limit
ENV NODE_OPTIONS=--max_old_space_size=8192
# Build the Nuxt application
RUN pnpm run build
# Production stage
FROM node:20-alpine
WORKDIR /app
COPY --from=build /app/.output ./output
COPY --from=build /app/package*.json ./
RUN npm install -g pnpm && pnpm install --prod
EXPOSE 3000
CMD ["node", "output/server/index.mjs"]```
docker-compose.yml
version: “3”
services:
frontend:
build:
context: .
dockerfile: docker/frontend.Dockerfile
ports:
– “3000:3000”
environment:
– NODE_ENV=production
depends_on:
– backend
backend:
build:
context: .
dockerfile: docker/backend.Dockerfile
ports:
– “8000:8000”
nginx:
image: nginx:latest
ports:
– “80:80”
– “443:443”
volumes:
– ./nginx.conf:/etc/nginx/nginx.conf
– /etc/letsencrypt:/etc/letsencrypt
depends_on:
– frontend
– backend