I’ve been trying to build my docker-compose for a next app, but the docker ends up hanging. I let it run for over 30 minutes before killing the process. I don’t think I have any huge packages, and as of right now, the app is basically the default init that is included in the NextUI.
# Dockerfile
FROM node:alpine
RUN mkdir -p /app
WORKDIR /app
COPY package*.json /app
RUN npm install
COPY . /app
EXPOSE 3000
RUN npm run dev
And here’s the docker-compose file that I have. I shortened the other containers since they are fine
version: '3.8'
networks:
default:
services:
mysql-db:
...
nestjs-app:
...
nextjs-app:
container_name: nextjs-app
# depends_on:
# - nestjs-app
build:
context: ./nextjs-app
dockerfile: Dockerfile
restart: unless-stopped
env_file: ./.env
ports:
- $NEXTJS_APP_LOCAL_PORT:$NEXTJS_APP_DOCKER_PORT
stdin_open: true
tty: true
volumes:
- ./nextjs-app:/app
- /app/node_modules
- /app/.next
networks:
- default
volumes:
mysql-volume:
And here’s my package.json, is this too large for docker to handle or something? It’s perfectly fine when I run it on my local machine, and it doesn’t quit with an error or anything like that, it just runs and never finishes.
{
"name": "next-app-template",
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint . --ext .ts,.tsx -c .eslintrc.json --fix"
},
"dependencies": {
"@nextui-org/button": "^2.0.31",
"@nextui-org/code": "^2.0.27",
"@nextui-org/input": "^2.1.21",
"@nextui-org/kbd": "^2.0.28",
"@nextui-org/link": "^2.0.29",
"@nextui-org/navbar": "^2.0.30",
"@nextui-org/react": "^2.3.6",
"@nextui-org/snippet": "^2.0.35",
"@nextui-org/switch": "^2.0.28",
"@nextui-org/system": "2.1.0",
"@nextui-org/theme": "2.2.0",
"@react-aria/ssr": "^3.9.2",
"@react-aria/visually-hidden": "^3.8.10",
"@types/node": "20.5.7",
"@types/react": "18.3.2",
"@types/react-dom": "18.3.0",
"@typescript-eslint/eslint-plugin": "^7.10.0",
"@typescript-eslint/parser": "^7.10.0",
"autoprefixer": "10.4.19",
"clsx": "^2.0.0",
"eslint": "^8.56.0",
"eslint-config-next": "14.2.1",
"eslint-config-prettier": "^8.2.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-react": "^7.23.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-unused-imports": "^3.2.0",
"framer-motion": "^11.1.1",
"intl-messageformat": "^10.5.0",
"next": "14.2.3",
"next-themes": "^0.2.1",
"postcss": "8.4.38",
"react": "18.3.1",
"react-dom": "18.3.1",
"tailwind-variants": "^0.1.20",
"tailwindcss": "3.4.3",
"typescript": "5.0.4"
}
}