Next.js Discord

Discord Forum

docker container end up giving me 404 not found for nextjs app

Unanswered
HOTCONQUEROR posted this in #help-forum
Open in Discord
my dockerfile:

#Installing and Prep Stage

FROM node:22-alpine AS prep

RUN apk add --no-cache g++ make py3-pip libc6-compat

WORKDIR /
# set the working directory in the container

COPY package*.json ./
# copy package.json from host machine to image current directory

RUN npm ci


# Build Stage

FROM prep AS build

WORKDIR /
ENV NEXT_TELEMETRY_DISABLED=1


COPY --from=prep ./node_modules ./node_modules
COPY . .

RUN  --mount=type=secret,id=CONNECTION_STRING export CONNECTION_STRING="$(cat /run/secrets/CONNECTION_STRING)" && npm run build



# Running the app stage

FROM build AS run

WORKDIR /
COPY --from=build --chown=nextjs:nodejs /.next ./.next
COPY --from=build /node_modules ./node_modules
COPY --from=build /package.json ./package.json
COPY --from=build /public ./public
COPY --from=build /.next/standalone ./.next/standalone
COPY --from=build /.next/static ./.next/static
COPY . .
EXPOSE '3000'

CMD ["npm","run","dev"]

1 Reply

docker-compose:

version: '3.8'

services:
  portfolio-app:
    container_name: portfolio-container
    build:
      context: .
      dockerfile: Dockerfile
      secrets:
       - CONNECTION_STRING
       - EMAIL_FROM
       - EMAIL_SERVER_HOST
       - EMAIL_SERVER_PASSWORD
       - EMAIL_SERVER_PORT
       - EMAIL_SERVER_USER
       - NEXTAUTH_SECRET
       - NEXTAUTH_URL #provide secrets inside the build because they are needed during Dockerfile image build process
    environment:
     - PROD='1'
    secrets:
    - CONNECTION_STRING #providing secrets after the image build because they are needed for access to the container
    - EMAIL_FROM
    - EMAIL_SERVER_HOST
    - EMAIL_SERVER_PASSWORD
    - EMAIL_SERVER_PORT
    - EMAIL_SERVER_USER
    - NEXTAUTH_SECRET
    - NEXTAUTH_URL
 
  
    ports:
      - '3000:3000'
    depends_on:
      - mongodb

  mongodb:
    image: mongo:latest
    secrets:
     - CONNECTION_STRING
    ports:
     - '27017:27017'
secrets:
  CONNECTION_STRING:
    file: ./run/secrets/CONNECTION_STRING
  EMAIL_FROM:
    file: ./run/secrets/EMAIL_FROM
  EMAIL_SERVER_HOST:
    file: ./run/secrets/EMAIL_SERVER_HOST
  
  EMAIL_SERVER_PASSWORD:
    file: ./run/secrets/EMAIL_SERVER_PASSWORD
  
  EMAIL_SERVER_PORT:
    file: ./run/secrets/EMAIL_SERVER_PORT
  EMAIL_SERVER_USER:
    file: ./run/secrets/EMAIL_SERVER_USER
  NEXTAUTH_SECRET:
    file: ./run/secrets/NEXTAUTH_SECRET
  NEXTAUTH_URL:
    file: ./run/secrets/NEXTAUTH_URL